mirror of
https://github.com/reactos/reactos.git
synced 2024-10-03 07:53:49 +00:00
[KERNEL32]
- It is supposed that user buffers are valid, and if not, access to them is protected with SEH. This fixes almost all of the kernel32_winetest:console tests. - Add parameter annotations. svn path=/branches/condrv_restructure/; revision=63772
This commit is contained in:
parent
2ae25e18a8
commit
d06d5833ea
|
@ -118,29 +118,30 @@ IntReadConsole(HANDLE hConsoleInput,
|
||||||
|
|
||||||
static
|
static
|
||||||
BOOL
|
BOOL
|
||||||
IntGetConsoleInput(HANDLE hConsoleInput,
|
IntGetConsoleInput(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead,
|
OUT LPDWORD lpNumberOfEventsRead,
|
||||||
WORD wFlags,
|
IN WORD wFlags,
|
||||||
BOOLEAN bUnicode)
|
IN BOOLEAN bUnicode)
|
||||||
{
|
{
|
||||||
|
BOOL Success;
|
||||||
CONSOLE_API_MESSAGE ApiMessage;
|
CONSOLE_API_MESSAGE ApiMessage;
|
||||||
PCONSOLE_GETINPUT GetInputRequest = &ApiMessage.Data.GetInputRequest;
|
PCONSOLE_GETINPUT GetInputRequest = &ApiMessage.Data.GetInputRequest;
|
||||||
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
||||||
|
|
||||||
if (lpBuffer == NULL)
|
|
||||||
{
|
|
||||||
SetLastError(ERROR_INVALID_ACCESS);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsConsoleHandle(hConsoleInput))
|
if (!IsConsoleHandle(hConsoleInput))
|
||||||
{
|
{
|
||||||
SetLastError(ERROR_INVALID_HANDLE);
|
_SEH2_TRY
|
||||||
|
{
|
||||||
if (lpNumberOfEventsRead != NULL)
|
|
||||||
*lpNumberOfEventsRead = 0;
|
*lpNumberOfEventsRead = 0;
|
||||||
|
SetLastError(ERROR_INVALID_HANDLE);
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -191,33 +192,37 @@ IntGetConsoleInput(HANDLE hConsoleInput,
|
||||||
sizeof(*GetInputRequest));
|
sizeof(*GetInputRequest));
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
if (NT_SUCCESS(ApiMessage.Status))
|
Success = NT_SUCCESS(ApiMessage.Status);
|
||||||
|
|
||||||
|
/* Retrieve the results */
|
||||||
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
/* Return the number of events read */
|
|
||||||
DPRINT("Events read: %lx\n", GetInputRequest->NumRecords);
|
DPRINT("Events read: %lx\n", GetInputRequest->NumRecords);
|
||||||
|
*lpNumberOfEventsRead = GetInputRequest->NumRecords;
|
||||||
|
|
||||||
if (lpNumberOfEventsRead != NULL)
|
if (Success)
|
||||||
*lpNumberOfEventsRead = GetInputRequest->NumRecords;
|
{
|
||||||
|
RtlCopyMemory(lpBuffer,
|
||||||
/* Copy into the buffer */
|
GetInputRequest->RecordBufPtr,
|
||||||
RtlCopyMemory(lpBuffer,
|
GetInputRequest->NumRecords * sizeof(INPUT_RECORD));
|
||||||
GetInputRequest->RecordBufPtr,
|
}
|
||||||
GetInputRequest->NumRecords * sizeof(INPUT_RECORD));
|
else
|
||||||
|
{
|
||||||
|
BaseSetLastNTError(ApiMessage.Status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
if (lpNumberOfEventsRead != NULL)
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
*lpNumberOfEventsRead = 0;
|
Success = FALSE;
|
||||||
|
|
||||||
/* Error out */
|
|
||||||
BaseSetLastNTError(ApiMessage.Status);
|
|
||||||
}
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
/* Release the capture buffer if needed */
|
/* Release the capture buffer if needed */
|
||||||
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
||||||
|
|
||||||
/* Return TRUE or FALSE */
|
/* Return success status */
|
||||||
return NT_SUCCESS(ApiMessage.Status);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -305,13 +310,14 @@ IntReadConsoleOutput(HANDLE hConsoleOutput,
|
||||||
|
|
||||||
static
|
static
|
||||||
BOOL
|
BOOL
|
||||||
IntReadConsoleOutputCode(HANDLE hConsoleOutput,
|
IntReadConsoleOutputCode(IN HANDLE hConsoleOutput,
|
||||||
CODE_TYPE CodeType,
|
IN CODE_TYPE CodeType,
|
||||||
PVOID pCode,
|
OUT PVOID pCode,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwReadCoord,
|
IN COORD dwReadCoord,
|
||||||
LPDWORD lpNumberOfCodesRead)
|
OUT LPDWORD lpNumberOfCodesRead)
|
||||||
{
|
{
|
||||||
|
BOOL Success;
|
||||||
CONSOLE_API_MESSAGE ApiMessage;
|
CONSOLE_API_MESSAGE ApiMessage;
|
||||||
PCONSOLE_READOUTPUTCODE ReadOutputCodeRequest = &ApiMessage.Data.ReadOutputCodeRequest;
|
PCONSOLE_READOUTPUTCODE ReadOutputCodeRequest = &ApiMessage.Data.ReadOutputCodeRequest;
|
||||||
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
||||||
|
@ -386,30 +392,36 @@ IntReadConsoleOutputCode(HANDLE hConsoleOutput,
|
||||||
sizeof(*ReadOutputCodeRequest));
|
sizeof(*ReadOutputCodeRequest));
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
if (NT_SUCCESS(ApiMessage.Status))
|
Success = NT_SUCCESS(ApiMessage.Status);
|
||||||
{
|
|
||||||
DWORD NumCodes = ReadOutputCodeRequest->NumCodes;
|
|
||||||
RtlCopyMemory(pCode,
|
|
||||||
ReadOutputCodeRequest->pCode,
|
|
||||||
NumCodes * CodeSize);
|
|
||||||
|
|
||||||
if (lpNumberOfCodesRead != NULL)
|
/* Retrieve the results */
|
||||||
*lpNumberOfCodesRead = NumCodes;
|
_SEH2_TRY
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (lpNumberOfCodesRead != NULL)
|
*lpNumberOfCodesRead = ReadOutputCodeRequest->NumCodes;
|
||||||
*lpNumberOfCodesRead = 0;
|
|
||||||
|
|
||||||
/* Error out */
|
if (Success)
|
||||||
BaseSetLastNTError(ApiMessage.Status);
|
{
|
||||||
|
RtlCopyMemory(pCode,
|
||||||
|
ReadOutputCodeRequest->pCode,
|
||||||
|
ReadOutputCodeRequest->NumCodes * CodeSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BaseSetLastNTError(ApiMessage.Status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
|
Success = FALSE;
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
/* Release the capture buffer if needed */
|
/* Release the capture buffer if needed */
|
||||||
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
||||||
|
|
||||||
/* Return TRUE or FALSE */
|
/* Return success status */
|
||||||
return NT_SUCCESS(ApiMessage.Status);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -488,23 +500,18 @@ IntWriteConsole(HANDLE hConsoleOutput,
|
||||||
|
|
||||||
static
|
static
|
||||||
BOOL
|
BOOL
|
||||||
IntWriteConsoleInput(HANDLE hConsoleInput,
|
IntWriteConsoleInput(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
IN PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsWritten,
|
OUT LPDWORD lpNumberOfEventsWritten,
|
||||||
BOOLEAN bUnicode,
|
IN BOOLEAN bUnicode,
|
||||||
BOOLEAN bAppendToEnd)
|
IN BOOLEAN bAppendToEnd)
|
||||||
{
|
{
|
||||||
|
BOOL Success;
|
||||||
CONSOLE_API_MESSAGE ApiMessage;
|
CONSOLE_API_MESSAGE ApiMessage;
|
||||||
PCONSOLE_WRITEINPUT WriteInputRequest = &ApiMessage.Data.WriteInputRequest;
|
PCONSOLE_WRITEINPUT WriteInputRequest = &ApiMessage.Data.WriteInputRequest;
|
||||||
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
||||||
|
|
||||||
if (lpBuffer == NULL)
|
|
||||||
{
|
|
||||||
SetLastError(ERROR_INVALID_ACCESS);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
DPRINT("IntWriteConsoleInput: %lx %p\n", nLength, lpNumberOfEventsWritten);
|
DPRINT("IntWriteConsoleInput: %lx %p\n", nLength, lpNumberOfEventsWritten);
|
||||||
|
|
||||||
/* Set up the data to send to the Console Server */
|
/* Set up the data to send to the Console Server */
|
||||||
|
@ -525,9 +532,18 @@ IntWriteConsoleInput(HANDLE hConsoleInput,
|
||||||
WriteInputRequest->RecordBufPtr = WriteInputRequest->RecordStaticBuffer;
|
WriteInputRequest->RecordBufPtr = WriteInputRequest->RecordStaticBuffer;
|
||||||
// CaptureBuffer = NULL;
|
// CaptureBuffer = NULL;
|
||||||
|
|
||||||
RtlCopyMemory(WriteInputRequest->RecordBufPtr,
|
_SEH2_TRY
|
||||||
lpBuffer,
|
{
|
||||||
nLength * sizeof(INPUT_RECORD));
|
RtlCopyMemory(WriteInputRequest->RecordBufPtr,
|
||||||
|
lpBuffer,
|
||||||
|
nLength * sizeof(INPUT_RECORD));
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -555,29 +571,30 @@ IntWriteConsoleInput(HANDLE hConsoleInput,
|
||||||
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleInput),
|
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleInput),
|
||||||
sizeof(*WriteInputRequest));
|
sizeof(*WriteInputRequest));
|
||||||
|
|
||||||
|
/* Check for success */
|
||||||
|
Success = NT_SUCCESS(ApiMessage.Status);
|
||||||
|
|
||||||
/* Release the capture buffer if needed */
|
/* Release the capture buffer if needed */
|
||||||
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
||||||
|
|
||||||
/* Check for success */
|
/* Retrieve the results */
|
||||||
if (NT_SUCCESS(ApiMessage.Status))
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
/* Return the number of events written */
|
|
||||||
DPRINT("Events written: %lx\n", WriteInputRequest->NumRecords);
|
DPRINT("Events written: %lx\n", WriteInputRequest->NumRecords);
|
||||||
|
*lpNumberOfEventsWritten = WriteInputRequest->NumRecords;
|
||||||
|
|
||||||
if (lpNumberOfEventsWritten != NULL)
|
if (!Success)
|
||||||
*lpNumberOfEventsWritten = WriteInputRequest->NumRecords;
|
BaseSetLastNTError(ApiMessage.Status);
|
||||||
}
|
}
|
||||||
else
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
if (lpNumberOfEventsWritten != NULL)
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
*lpNumberOfEventsWritten = 0;
|
Success = FALSE;
|
||||||
|
|
||||||
/* Error out */
|
|
||||||
BaseSetLastNTError(ApiMessage.Status);
|
|
||||||
}
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
/* Return TRUE or FALSE */
|
/* Return success status */
|
||||||
return NT_SUCCESS(ApiMessage.Status);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -661,24 +678,19 @@ IntWriteConsoleOutput(HANDLE hConsoleOutput,
|
||||||
|
|
||||||
static
|
static
|
||||||
BOOL
|
BOOL
|
||||||
IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
|
IntWriteConsoleOutputCode(IN HANDLE hConsoleOutput,
|
||||||
CODE_TYPE CodeType,
|
IN CODE_TYPE CodeType,
|
||||||
CONST VOID *pCode,
|
IN CONST VOID *pCode,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfCodesWritten)
|
OUT LPDWORD lpNumberOfCodesWritten)
|
||||||
{
|
{
|
||||||
|
BOOL Success;
|
||||||
CONSOLE_API_MESSAGE ApiMessage;
|
CONSOLE_API_MESSAGE ApiMessage;
|
||||||
PCONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest = &ApiMessage.Data.WriteOutputCodeRequest;
|
PCONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest = &ApiMessage.Data.WriteOutputCodeRequest;
|
||||||
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
PCSR_CAPTURE_BUFFER CaptureBuffer = NULL;
|
||||||
ULONG SizeBytes, CodeSize;
|
ULONG SizeBytes, CodeSize;
|
||||||
|
|
||||||
if (pCode == NULL)
|
|
||||||
{
|
|
||||||
SetLastError(ERROR_INVALID_ACCESS);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( (CodeType != CODE_ASCII ) &&
|
if ( (CodeType != CODE_ASCII ) &&
|
||||||
(CodeType != CODE_UNICODE ) &&
|
(CodeType != CODE_UNICODE ) &&
|
||||||
(CodeType != CODE_ATTRIBUTE) )
|
(CodeType != CODE_ATTRIBUTE) )
|
||||||
|
@ -724,9 +736,18 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
|
||||||
WriteOutputCodeRequest->pCode = WriteOutputCodeRequest->CodeStaticBuffer;
|
WriteOutputCodeRequest->pCode = WriteOutputCodeRequest->CodeStaticBuffer;
|
||||||
// CaptureBuffer = NULL;
|
// CaptureBuffer = NULL;
|
||||||
|
|
||||||
RtlCopyMemory(WriteOutputCodeRequest->pCode,
|
_SEH2_TRY
|
||||||
pCode,
|
{
|
||||||
SizeBytes);
|
RtlCopyMemory(WriteOutputCodeRequest->pCode,
|
||||||
|
pCode,
|
||||||
|
SizeBytes);
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -752,38 +773,42 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
|
||||||
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleOutputString),
|
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleOutputString),
|
||||||
sizeof(*WriteOutputCodeRequest));
|
sizeof(*WriteOutputCodeRequest));
|
||||||
|
|
||||||
|
/* Check for success */
|
||||||
|
Success = NT_SUCCESS(ApiMessage.Status);
|
||||||
|
|
||||||
/* Release the capture buffer if needed */
|
/* Release the capture buffer if needed */
|
||||||
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer);
|
||||||
|
|
||||||
/* Check for success */
|
/* Retrieve the results */
|
||||||
if (NT_SUCCESS(ApiMessage.Status))
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
if (lpNumberOfCodesWritten != NULL)
|
*lpNumberOfCodesWritten = WriteOutputCodeRequest->NumCodes;
|
||||||
*lpNumberOfCodesWritten = WriteOutputCodeRequest->NumCodes;
|
|
||||||
|
if (!Success)
|
||||||
|
BaseSetLastNTError(ApiMessage.Status);
|
||||||
}
|
}
|
||||||
else
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
if (lpNumberOfCodesWritten != NULL)
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
*lpNumberOfCodesWritten = 0;
|
Success = FALSE;
|
||||||
|
|
||||||
/* Error out */
|
|
||||||
BaseSetLastNTError(ApiMessage.Status);
|
|
||||||
}
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
/* Return TRUE or FALSE */
|
/* Return success status */
|
||||||
return NT_SUCCESS(ApiMessage.Status);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
BOOL
|
BOOL
|
||||||
IntFillConsoleOutputCode(HANDLE hConsoleOutput,
|
IntFillConsoleOutputCode(IN HANDLE hConsoleOutput,
|
||||||
CODE_TYPE CodeType,
|
IN CODE_TYPE CodeType,
|
||||||
CODE_ELEMENT Code,
|
IN CODE_ELEMENT Code,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfCodesWritten)
|
OUT LPDWORD lpNumberOfCodesWritten)
|
||||||
{
|
{
|
||||||
|
BOOL Success;
|
||||||
CONSOLE_API_MESSAGE ApiMessage;
|
CONSOLE_API_MESSAGE ApiMessage;
|
||||||
PCONSOLE_FILLOUTPUTCODE FillOutputRequest = &ApiMessage.Data.FillOutputRequest;
|
PCONSOLE_FILLOUTPUTCODE FillOutputRequest = &ApiMessage.Data.FillOutputRequest;
|
||||||
|
|
||||||
|
@ -812,21 +837,25 @@ IntFillConsoleOutputCode(HANDLE hConsoleOutput,
|
||||||
sizeof(*FillOutputRequest));
|
sizeof(*FillOutputRequest));
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
if (NT_SUCCESS(ApiMessage.Status))
|
Success = NT_SUCCESS(ApiMessage.Status);
|
||||||
{
|
|
||||||
if (lpNumberOfCodesWritten != NULL)
|
|
||||||
*lpNumberOfCodesWritten = FillOutputRequest->NumCodes;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (lpNumberOfCodesWritten != NULL)
|
|
||||||
*lpNumberOfCodesWritten = 0;
|
|
||||||
|
|
||||||
BaseSetLastNTError(ApiMessage.Status);
|
/* Retrieve the results */
|
||||||
}
|
_SEH2_TRY
|
||||||
|
{
|
||||||
|
*lpNumberOfCodesWritten = FillOutputRequest->NumCodes;
|
||||||
|
|
||||||
/* Return TRUE or FALSE */
|
if (!Success)
|
||||||
return NT_SUCCESS(ApiMessage.Status);
|
BaseSetLastNTError(ApiMessage.Status);
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_ACCESS);
|
||||||
|
Success = FALSE;
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
|
/* Return success status */
|
||||||
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -887,10 +916,10 @@ ReadConsoleA(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
PeekConsoleInputW(HANDLE hConsoleInput,
|
PeekConsoleInputW(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead)
|
OUT LPDWORD lpNumberOfEventsRead)
|
||||||
{
|
{
|
||||||
return IntGetConsoleInput(hConsoleInput,
|
return IntGetConsoleInput(hConsoleInput,
|
||||||
lpBuffer,
|
lpBuffer,
|
||||||
|
@ -908,10 +937,10 @@ PeekConsoleInputW(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
PeekConsoleInputA(HANDLE hConsoleInput,
|
PeekConsoleInputA(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead)
|
OUT LPDWORD lpNumberOfEventsRead)
|
||||||
{
|
{
|
||||||
return IntGetConsoleInput(hConsoleInput,
|
return IntGetConsoleInput(hConsoleInput,
|
||||||
lpBuffer,
|
lpBuffer,
|
||||||
|
@ -929,10 +958,10 @@ PeekConsoleInputA(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleInputW(HANDLE hConsoleInput,
|
ReadConsoleInputW(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead)
|
OUT LPDWORD lpNumberOfEventsRead)
|
||||||
{
|
{
|
||||||
return IntGetConsoleInput(hConsoleInput,
|
return IntGetConsoleInput(hConsoleInput,
|
||||||
lpBuffer,
|
lpBuffer,
|
||||||
|
@ -950,10 +979,10 @@ ReadConsoleInputW(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleInputA(HANDLE hConsoleInput,
|
ReadConsoleInputA(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead)
|
OUT LPDWORD lpNumberOfEventsRead)
|
||||||
{
|
{
|
||||||
return IntGetConsoleInput(hConsoleInput,
|
return IntGetConsoleInput(hConsoleInput,
|
||||||
lpBuffer,
|
lpBuffer,
|
||||||
|
@ -971,11 +1000,11 @@ ReadConsoleInputA(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleInputExW(HANDLE hConsoleInput,
|
ReadConsoleInputExW(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead,
|
OUT LPDWORD lpNumberOfEventsRead,
|
||||||
WORD wFlags)
|
IN WORD wFlags)
|
||||||
{
|
{
|
||||||
return IntGetConsoleInput(hConsoleInput,
|
return IntGetConsoleInput(hConsoleInput,
|
||||||
lpBuffer,
|
lpBuffer,
|
||||||
|
@ -993,11 +1022,11 @@ ReadConsoleInputExW(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleInputExA(HANDLE hConsoleInput,
|
ReadConsoleInputExA(IN HANDLE hConsoleInput,
|
||||||
PINPUT_RECORD lpBuffer,
|
OUT PINPUT_RECORD lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsRead,
|
OUT LPDWORD lpNumberOfEventsRead,
|
||||||
WORD wFlags)
|
IN WORD wFlags)
|
||||||
{
|
{
|
||||||
return IntGetConsoleInput(hConsoleInput,
|
return IntGetConsoleInput(hConsoleInput,
|
||||||
lpBuffer,
|
lpBuffer,
|
||||||
|
@ -1059,11 +1088,11 @@ ReadConsoleOutputA(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,
|
ReadConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
|
||||||
LPWSTR lpCharacter,
|
OUT LPWSTR lpCharacter,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwReadCoord,
|
IN COORD dwReadCoord,
|
||||||
LPDWORD lpNumberOfCharsRead)
|
OUT LPDWORD lpNumberOfCharsRead)
|
||||||
{
|
{
|
||||||
return IntReadConsoleOutputCode(hConsoleOutput,
|
return IntReadConsoleOutputCode(hConsoleOutput,
|
||||||
CODE_UNICODE,
|
CODE_UNICODE,
|
||||||
|
@ -1081,11 +1110,11 @@ ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,
|
ReadConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
|
||||||
LPSTR lpCharacter,
|
OUT LPSTR lpCharacter,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwReadCoord,
|
IN COORD dwReadCoord,
|
||||||
LPDWORD lpNumberOfCharsRead)
|
OUT LPDWORD lpNumberOfCharsRead)
|
||||||
{
|
{
|
||||||
return IntReadConsoleOutputCode(hConsoleOutput,
|
return IntReadConsoleOutputCode(hConsoleOutput,
|
||||||
CODE_ASCII,
|
CODE_ASCII,
|
||||||
|
@ -1103,11 +1132,11 @@ ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
ReadConsoleOutputAttribute(HANDLE hConsoleOutput,
|
ReadConsoleOutputAttribute(IN HANDLE hConsoleOutput,
|
||||||
LPWORD lpAttribute,
|
OUT LPWORD lpAttribute,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwReadCoord,
|
IN COORD dwReadCoord,
|
||||||
LPDWORD lpNumberOfAttrsRead)
|
OUT LPDWORD lpNumberOfAttrsRead)
|
||||||
{
|
{
|
||||||
return IntReadConsoleOutputCode(hConsoleOutput,
|
return IntReadConsoleOutputCode(hConsoleOutput,
|
||||||
CODE_ATTRIBUTE,
|
CODE_ATTRIBUTE,
|
||||||
|
@ -1173,10 +1202,10 @@ WriteConsoleA(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleInputW(HANDLE hConsoleInput,
|
WriteConsoleInputW(IN HANDLE hConsoleInput,
|
||||||
CONST INPUT_RECORD *lpBuffer,
|
IN CONST INPUT_RECORD *lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsWritten)
|
OUT LPDWORD lpNumberOfEventsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleInput(hConsoleInput,
|
return IntWriteConsoleInput(hConsoleInput,
|
||||||
(PINPUT_RECORD)lpBuffer,
|
(PINPUT_RECORD)lpBuffer,
|
||||||
|
@ -1194,10 +1223,10 @@ WriteConsoleInputW(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleInputA(HANDLE hConsoleInput,
|
WriteConsoleInputA(IN HANDLE hConsoleInput,
|
||||||
CONST INPUT_RECORD *lpBuffer,
|
IN CONST INPUT_RECORD *lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsWritten)
|
OUT LPDWORD lpNumberOfEventsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleInput(hConsoleInput,
|
return IntWriteConsoleInput(hConsoleInput,
|
||||||
(PINPUT_RECORD)lpBuffer,
|
(PINPUT_RECORD)lpBuffer,
|
||||||
|
@ -1215,10 +1244,10 @@ WriteConsoleInputA(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleInputVDMW(HANDLE hConsoleInput,
|
WriteConsoleInputVDMW(IN HANDLE hConsoleInput,
|
||||||
CONST INPUT_RECORD *lpBuffer,
|
IN CONST INPUT_RECORD *lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsWritten)
|
OUT LPDWORD lpNumberOfEventsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleInput(hConsoleInput,
|
return IntWriteConsoleInput(hConsoleInput,
|
||||||
(PINPUT_RECORD)lpBuffer,
|
(PINPUT_RECORD)lpBuffer,
|
||||||
|
@ -1236,10 +1265,10 @@ WriteConsoleInputVDMW(HANDLE hConsoleInput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleInputVDMA(HANDLE hConsoleInput,
|
WriteConsoleInputVDMA(IN HANDLE hConsoleInput,
|
||||||
CONST INPUT_RECORD *lpBuffer,
|
IN CONST INPUT_RECORD *lpBuffer,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
LPDWORD lpNumberOfEventsWritten)
|
OUT LPDWORD lpNumberOfEventsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleInput(hConsoleInput,
|
return IntWriteConsoleInput(hConsoleInput,
|
||||||
(PINPUT_RECORD)lpBuffer,
|
(PINPUT_RECORD)lpBuffer,
|
||||||
|
@ -1301,11 +1330,11 @@ WriteConsoleOutputA(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,
|
WriteConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
|
||||||
LPCWSTR lpCharacter,
|
IN LPCWSTR lpCharacter,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfCharsWritten)
|
OUT LPDWORD lpNumberOfCharsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleOutputCode(hConsoleOutput,
|
return IntWriteConsoleOutputCode(hConsoleOutput,
|
||||||
CODE_UNICODE,
|
CODE_UNICODE,
|
||||||
|
@ -1323,11 +1352,11 @@ WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,
|
WriteConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
|
||||||
LPCSTR lpCharacter,
|
IN LPCSTR lpCharacter,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfCharsWritten)
|
OUT LPDWORD lpNumberOfCharsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleOutputCode(hConsoleOutput,
|
return IntWriteConsoleOutputCode(hConsoleOutput,
|
||||||
CODE_ASCII,
|
CODE_ASCII,
|
||||||
|
@ -1345,11 +1374,11 @@ WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
WriteConsoleOutputAttribute(HANDLE hConsoleOutput,
|
WriteConsoleOutputAttribute(IN HANDLE hConsoleOutput,
|
||||||
CONST WORD *lpAttribute,
|
IN CONST WORD *lpAttribute,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfAttrsWritten)
|
OUT LPDWORD lpNumberOfAttrsWritten)
|
||||||
{
|
{
|
||||||
return IntWriteConsoleOutputCode(hConsoleOutput,
|
return IntWriteConsoleOutputCode(hConsoleOutput,
|
||||||
CODE_ATTRIBUTE,
|
CODE_ATTRIBUTE,
|
||||||
|
@ -1367,11 +1396,11 @@ WriteConsoleOutputAttribute(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
FillConsoleOutputCharacterW(HANDLE hConsoleOutput,
|
FillConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
|
||||||
WCHAR cCharacter,
|
IN WCHAR cCharacter,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfCharsWritten)
|
OUT LPDWORD lpNumberOfCharsWritten)
|
||||||
{
|
{
|
||||||
CODE_ELEMENT Code;
|
CODE_ELEMENT Code;
|
||||||
Code.UnicodeChar = cCharacter;
|
Code.UnicodeChar = cCharacter;
|
||||||
|
@ -1391,10 +1420,10 @@ FillConsoleOutputCharacterW(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
FillConsoleOutputCharacterA(HANDLE hConsoleOutput,
|
FillConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
|
||||||
CHAR cCharacter,
|
IN CHAR cCharacter,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfCharsWritten)
|
LPDWORD lpNumberOfCharsWritten)
|
||||||
{
|
{
|
||||||
CODE_ELEMENT Code;
|
CODE_ELEMENT Code;
|
||||||
|
@ -1415,11 +1444,11 @@ FillConsoleOutputCharacterA(HANDLE hConsoleOutput,
|
||||||
*/
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
WINAPI
|
WINAPI
|
||||||
FillConsoleOutputAttribute(HANDLE hConsoleOutput,
|
FillConsoleOutputAttribute(IN HANDLE hConsoleOutput,
|
||||||
WORD wAttribute,
|
IN WORD wAttribute,
|
||||||
DWORD nLength,
|
IN DWORD nLength,
|
||||||
COORD dwWriteCoord,
|
IN COORD dwWriteCoord,
|
||||||
LPDWORD lpNumberOfAttrsWritten)
|
OUT LPDWORD lpNumberOfAttrsWritten)
|
||||||
{
|
{
|
||||||
CODE_ELEMENT Code;
|
CODE_ELEMENT Code;
|
||||||
Code.Attribute = wAttribute;
|
Code.Attribute = wAttribute;
|
||||||
|
|
Loading…
Reference in a new issue