mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[channes,rdpdr] use NTSTATUS for IoStatus
the IoStatus will hold NTSTATUS values but is defined unsigned in [MS-RDPEFS] whereas NTSTATUS is defined as signed integer. Ignore the spec here and just treat it as signed (eliminates warnings and twos complement will ensure the values are equal in bit representation)
This commit is contained in:
@@ -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 */
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -358,7 +358,7 @@ struct S_IRP
|
||||
UINT32 MinorFunction;
|
||||
wStream* input;
|
||||
|
||||
UINT32 IoStatus;
|
||||
NTSTATUS IoStatus;
|
||||
wStream* output;
|
||||
|
||||
pcIRPResponse Complete;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user