mirror of
https://github.com/reactos/reactos.git
synced 2024-09-27 21:16:34 +00:00
[CSRLIB] Add SAL annotations to the CSR client functions.
This commit is contained in:
parent
d2aeaba5f8
commit
8cd01eaf25
|
@ -1,10 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Client/Server Runtime SubSystem
|
||||||
* PROJECT: ReactOS Client/Server Runtime SubSystem
|
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||||
* FILE: include/reactos/subsys/csr/csr.h
|
* PURPOSE: Public definitions for CSR Clients
|
||||||
* PURPOSE: Public definitions for CSR Clients
|
* COPYRIGHT: Copyright 2005 Alex Ionescu <alex@relsoft.net>
|
||||||
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
|
* Copyright 2012-2022 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
|
||||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _CSR_H
|
#ifndef _CSR_H
|
||||||
|
@ -14,71 +13,88 @@
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrClientConnectToServer(IN PWSTR ObjectDirectory,
|
CsrClientConnectToServer(
|
||||||
IN ULONG ServerId,
|
_In_ PCWSTR ObjectDirectory,
|
||||||
IN PVOID ConnectionInfo,
|
_In_ ULONG ServerId,
|
||||||
IN OUT PULONG ConnectionInfoSize,
|
_In_ PVOID ConnectionInfo,
|
||||||
OUT PBOOLEAN ServerToServerCall);
|
_Inout_ PULONG ConnectionInfoSize,
|
||||||
|
_Out_ PBOOLEAN ServerToServerCall);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrClientCallServer(IN OUT PCSR_API_MESSAGE ApiMessage,
|
CsrClientCallServer(
|
||||||
IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer OPTIONAL,
|
_Inout_ PCSR_API_MESSAGE ApiMessage,
|
||||||
IN CSR_API_NUMBER ApiNumber,
|
_Inout_opt_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
IN ULONG DataLength);
|
_In_ CSR_API_NUMBER ApiNumber,
|
||||||
|
_In_ ULONG DataLength);
|
||||||
|
|
||||||
PCSR_CAPTURE_BUFFER
|
PCSR_CAPTURE_BUFFER
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrAllocateCaptureBuffer(IN ULONG ArgumentCount,
|
CsrAllocateCaptureBuffer(
|
||||||
IN ULONG BufferSize);
|
_In_ ULONG ArgumentCount,
|
||||||
|
_In_ ULONG BufferSize);
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrAllocateMessagePointer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
CsrAllocateMessagePointer(
|
||||||
IN ULONG MessageLength,
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
OUT PVOID* CapturedData);
|
_In_ ULONG MessageLength,
|
||||||
|
_Out_ PVOID* CapturedData);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureMessageBuffer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
CsrCaptureMessageBuffer(
|
||||||
IN PVOID MessageBuffer OPTIONAL,
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
IN ULONG MessageLength,
|
_In_opt_ PVOID MessageBuffer,
|
||||||
OUT PVOID* CapturedData);
|
_In_ ULONG MessageLength,
|
||||||
|
_Out_ PVOID* CapturedData);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrFreeCaptureBuffer(IN PCSR_CAPTURE_BUFFER CaptureBuffer);
|
CsrFreeCaptureBuffer(
|
||||||
|
_In_ _Frees_ptr_ PCSR_CAPTURE_BUFFER CaptureBuffer);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureMessageString(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
CsrCaptureMessageString(
|
||||||
IN PCSTR String OPTIONAL,
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
IN ULONG StringLength,
|
_In_opt_ PCSTR String,
|
||||||
IN ULONG MaximumLength,
|
_In_ ULONG StringLength,
|
||||||
OUT PSTRING CapturedString);
|
_In_ ULONG MaximumLength,
|
||||||
|
_Out_ PSTRING CapturedString);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
CsrCaptureMessageUnicodeStringInPlace(
|
||||||
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
|
_Inout_ PUNICODE_STRING String);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureMessageMultiUnicodeStringsInPlace(OUT PCSR_CAPTURE_BUFFER* CaptureBuffer,
|
CsrCaptureMessageMultiUnicodeStringsInPlace(
|
||||||
IN ULONG StringsCount,
|
_Inout_ PCSR_CAPTURE_BUFFER* CaptureBuffer,
|
||||||
IN PUNICODE_STRING* MessageStrings);
|
_In_ ULONG StringsCount,
|
||||||
|
_In_ PUNICODE_STRING* MessageStrings);
|
||||||
|
|
||||||
PLARGE_INTEGER
|
PLARGE_INTEGER
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureTimeout(IN ULONG Milliseconds,
|
CsrCaptureTimeout(
|
||||||
OUT PLARGE_INTEGER Timeout);
|
_In_ ULONG Milliseconds,
|
||||||
|
_Out_ PLARGE_INTEGER Timeout);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrProbeForRead(IN PVOID Address,
|
CsrProbeForRead(
|
||||||
IN ULONG Length,
|
_In_ PVOID Address,
|
||||||
IN ULONG Alignment);
|
_In_ ULONG Length,
|
||||||
|
_In_ ULONG Alignment);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrProbeForWrite(IN PVOID Address,
|
CsrProbeForWrite(
|
||||||
IN ULONG Length,
|
_In_ PVOID Address,
|
||||||
IN ULONG Alignment);
|
_In_ ULONG Length,
|
||||||
|
_In_ ULONG Alignment);
|
||||||
|
|
||||||
HANDLE
|
HANDLE
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -94,8 +110,9 @@ CsrIdentifyAlertableThread(VOID);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrSetPriorityClass(IN HANDLE Process,
|
CsrSetPriorityClass(
|
||||||
IN OUT PULONG PriorityClass);
|
_In_ HANDLE Process,
|
||||||
|
_Inout_ PULONG PriorityClass);
|
||||||
|
|
||||||
#endif // _CSR_H
|
#endif // _CSR_H
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,9 @@ CsrIdentifyAlertableThread(VOID)
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrSetPriorityClass(IN HANDLE Process,
|
CsrSetPriorityClass(
|
||||||
IN OUT PULONG PriorityClass)
|
_In_ HANDLE Process,
|
||||||
|
_Inout_ PULONG PriorityClass)
|
||||||
{
|
{
|
||||||
#if (NTDDI_VERSION < NTDDI_WS03)
|
#if (NTDDI_VERSION < NTDDI_WS03)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -20,9 +20,10 @@
|
||||||
*/
|
*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrProbeForRead(IN PVOID Address,
|
CsrProbeForRead(
|
||||||
IN ULONG Length,
|
_In_ PVOID Address,
|
||||||
IN ULONG Alignment)
|
_In_ ULONG Length,
|
||||||
|
_In_ ULONG Alignment)
|
||||||
{
|
{
|
||||||
volatile UCHAR *Pointer;
|
volatile UCHAR *Pointer;
|
||||||
UCHAR Data;
|
UCHAR Data;
|
||||||
|
@ -52,9 +53,10 @@ CsrProbeForRead(IN PVOID Address,
|
||||||
*/
|
*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrProbeForWrite(IN PVOID Address,
|
CsrProbeForWrite(
|
||||||
IN ULONG Length,
|
_In_ PVOID Address,
|
||||||
IN ULONG Alignment)
|
_In_ ULONG Length,
|
||||||
|
_In_ ULONG Alignment)
|
||||||
{
|
{
|
||||||
volatile UCHAR *Pointer;
|
volatile UCHAR *Pointer;
|
||||||
|
|
||||||
|
@ -82,8 +84,9 @@ CsrProbeForWrite(IN PVOID Address,
|
||||||
*/
|
*/
|
||||||
PCSR_CAPTURE_BUFFER
|
PCSR_CAPTURE_BUFFER
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrAllocateCaptureBuffer(IN ULONG ArgumentCount,
|
CsrAllocateCaptureBuffer(
|
||||||
IN ULONG BufferSize)
|
_In_ ULONG ArgumentCount,
|
||||||
|
_In_ ULONG BufferSize)
|
||||||
{
|
{
|
||||||
PCSR_CAPTURE_BUFFER CaptureBuffer;
|
PCSR_CAPTURE_BUFFER CaptureBuffer;
|
||||||
ULONG OffsetsArraySize;
|
ULONG OffsetsArraySize;
|
||||||
|
@ -146,9 +149,10 @@ CsrAllocateCaptureBuffer(IN ULONG ArgumentCount,
|
||||||
*/
|
*/
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrAllocateMessagePointer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
CsrAllocateMessagePointer(
|
||||||
IN ULONG MessageLength,
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
OUT PVOID* CapturedData)
|
_In_ ULONG MessageLength,
|
||||||
|
_Out_ PVOID* CapturedData)
|
||||||
{
|
{
|
||||||
if (MessageLength == 0)
|
if (MessageLength == 0)
|
||||||
{
|
{
|
||||||
|
@ -182,10 +186,11 @@ CsrAllocateMessagePointer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
*/
|
*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureMessageBuffer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
CsrCaptureMessageBuffer(
|
||||||
IN PVOID MessageBuffer OPTIONAL,
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
IN ULONG MessageLength,
|
_In_opt_ PVOID MessageBuffer,
|
||||||
OUT PVOID* CapturedData)
|
_In_ ULONG MessageLength,
|
||||||
|
_Out_ PVOID* CapturedData)
|
||||||
{
|
{
|
||||||
/* Simply allocate a message pointer in the buffer */
|
/* Simply allocate a message pointer in the buffer */
|
||||||
CsrAllocateMessagePointer(CaptureBuffer, MessageLength, CapturedData);
|
CsrAllocateMessagePointer(CaptureBuffer, MessageLength, CapturedData);
|
||||||
|
@ -202,7 +207,8 @@ CsrCaptureMessageBuffer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
*/
|
*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrFreeCaptureBuffer(IN PCSR_CAPTURE_BUFFER CaptureBuffer)
|
CsrFreeCaptureBuffer(
|
||||||
|
_In_ _Frees_ptr_ PCSR_CAPTURE_BUFFER CaptureBuffer)
|
||||||
{
|
{
|
||||||
/* Free it from the heap */
|
/* Free it from the heap */
|
||||||
RtlFreeHeap(CsrPortHeap, 0, CaptureBuffer);
|
RtlFreeHeap(CsrPortHeap, 0, CaptureBuffer);
|
||||||
|
@ -213,11 +219,12 @@ CsrFreeCaptureBuffer(IN PCSR_CAPTURE_BUFFER CaptureBuffer)
|
||||||
*/
|
*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureMessageString(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
CsrCaptureMessageString(
|
||||||
IN PCSTR String OPTIONAL,
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
IN ULONG StringLength,
|
_In_opt_ PCSTR String,
|
||||||
IN ULONG MaximumLength,
|
_In_ ULONG StringLength,
|
||||||
OUT PSTRING CapturedString)
|
_In_ ULONG MaximumLength,
|
||||||
|
_Out_ PSTRING CapturedString)
|
||||||
{
|
{
|
||||||
ASSERT(CapturedString != NULL);
|
ASSERT(CapturedString != NULL);
|
||||||
|
|
||||||
|
@ -259,9 +266,11 @@ CsrCaptureMessageString(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
CapturedString->Buffer[CapturedString->Length] = ANSI_NULL;
|
CapturedString->Buffer[CapturedString->Length] = ANSI_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
VOID
|
||||||
CsrCaptureMessageUnicodeStringInPlace(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
NTAPI
|
||||||
IN PUNICODE_STRING String)
|
CsrCaptureMessageUnicodeStringInPlace(
|
||||||
|
_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
|
_Inout_ PUNICODE_STRING String)
|
||||||
{
|
{
|
||||||
ASSERT(String != NULL);
|
ASSERT(String != NULL);
|
||||||
|
|
||||||
|
@ -282,9 +291,10 @@ CsrCaptureMessageUnicodeStringInPlace(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureMessageMultiUnicodeStringsInPlace(OUT PCSR_CAPTURE_BUFFER* CaptureBuffer,
|
CsrCaptureMessageMultiUnicodeStringsInPlace(
|
||||||
IN ULONG StringsCount,
|
_Inout_ PCSR_CAPTURE_BUFFER* CaptureBuffer,
|
||||||
IN PUNICODE_STRING* MessageStrings)
|
_In_ ULONG StringsCount,
|
||||||
|
_In_ PUNICODE_STRING* MessageStrings)
|
||||||
{
|
{
|
||||||
ULONG Count;
|
ULONG Count;
|
||||||
|
|
||||||
|
@ -328,8 +338,9 @@ CsrCaptureMessageMultiUnicodeStringsInPlace(OUT PCSR_CAPTURE_BUFFER* CaptureBuff
|
||||||
*/
|
*/
|
||||||
PLARGE_INTEGER
|
PLARGE_INTEGER
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrCaptureTimeout(IN ULONG Milliseconds,
|
CsrCaptureTimeout(
|
||||||
OUT PLARGE_INTEGER Timeout)
|
_In_ ULONG Milliseconds,
|
||||||
|
_Out_ PLARGE_INTEGER Timeout)
|
||||||
{
|
{
|
||||||
/* Validate the time */
|
/* Validate the time */
|
||||||
if (Milliseconds == -1) return NULL;
|
if (Milliseconds == -1) return NULL;
|
||||||
|
|
|
@ -31,16 +31,17 @@ ULONG_PTR CsrPortMemoryDelta;
|
||||||
BOOLEAN InsideCsrProcess = FALSE;
|
BOOLEAN InsideCsrProcess = FALSE;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PCSR_SERVER_API_ROUTINE)(IN PPORT_MESSAGE Request,
|
(NTAPI *PCSR_SERVER_API_ROUTINE)(
|
||||||
IN PPORT_MESSAGE Reply);
|
_In_ PCSR_API_MESSAGE Request,
|
||||||
|
_Inout_ PCSR_API_MESSAGE Reply);
|
||||||
|
|
||||||
PCSR_SERVER_API_ROUTINE CsrServerApiRoutine;
|
PCSR_SERVER_API_ROUTINE CsrServerApiRoutine;
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
NTSTATUS
|
static NTSTATUS
|
||||||
NTAPI
|
CsrpConnectToServer(
|
||||||
CsrpConnectToServer(IN PWSTR ObjectDirectory)
|
_In_ PCWSTR ObjectDirectory)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
SIZE_T PortNameLength;
|
SIZE_T PortNameLength;
|
||||||
|
@ -198,11 +199,12 @@ CsrpConnectToServer(IN PWSTR ObjectDirectory)
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrClientConnectToServer(IN PWSTR ObjectDirectory,
|
CsrClientConnectToServer(
|
||||||
IN ULONG ServerId,
|
_In_ PCWSTR ObjectDirectory,
|
||||||
IN PVOID ConnectionInfo,
|
_In_ ULONG ServerId,
|
||||||
IN OUT PULONG ConnectionInfoSize,
|
_In_ PVOID ConnectionInfo,
|
||||||
OUT PBOOLEAN ServerToServerCall)
|
_Inout_ PULONG ConnectionInfoSize,
|
||||||
|
_Out_ PBOOLEAN ServerToServerCall)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PIMAGE_NT_HEADERS NtHeader;
|
PIMAGE_NT_HEADERS NtHeader;
|
||||||
|
@ -367,10 +369,11 @@ C_ASSERT((sizeof(TEST) - sizeof(TEST_EMBEDDED)) != FIELD_OFFSET(TEST, Three));
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
CsrClientCallServer(IN OUT PCSR_API_MESSAGE ApiMessage,
|
CsrClientCallServer(
|
||||||
IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer OPTIONAL,
|
_Inout_ PCSR_API_MESSAGE ApiMessage,
|
||||||
IN CSR_API_NUMBER ApiNumber,
|
_Inout_opt_ PCSR_CAPTURE_BUFFER CaptureBuffer,
|
||||||
IN ULONG DataLength)
|
_In_ CSR_API_NUMBER ApiNumber,
|
||||||
|
_In_ ULONG DataLength)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -484,8 +487,7 @@ CsrClientCallServer(IN OUT PCSR_API_MESSAGE ApiMessage,
|
||||||
ApiMessage->Header.ClientId = NtCurrentTeb()->ClientId;
|
ApiMessage->Header.ClientId = NtCurrentTeb()->ClientId;
|
||||||
|
|
||||||
/* Do a direct call */
|
/* Do a direct call */
|
||||||
Status = CsrServerApiRoutine(&ApiMessage->Header,
|
Status = CsrServerApiRoutine(ApiMessage, ApiMessage);
|
||||||
&ApiMessage->Header);
|
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
|
Loading…
Reference in a new issue