mirror of
https://github.com/reactos/reactos.git
synced 2025-01-01 03:54:02 +00:00
Add missing stuff to NDK
svn path=/trunk/; revision=16128
This commit is contained in:
parent
16c356bfa1
commit
aaad0af903
4 changed files with 274 additions and 0 deletions
|
@ -332,6 +332,22 @@ RtlAddAccessAllowedAce (
|
||||||
PSID Sid
|
PSID Sid
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
RtlAllocateAndInitializeSid (
|
||||||
|
IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
|
||||||
|
IN UCHAR SubAuthorityCount,
|
||||||
|
IN ULONG SubAuthority0,
|
||||||
|
IN ULONG SubAuthority1,
|
||||||
|
IN ULONG SubAuthority2,
|
||||||
|
IN ULONG SubAuthority3,
|
||||||
|
IN ULONG SubAuthority4,
|
||||||
|
IN ULONG SubAuthority5,
|
||||||
|
IN ULONG SubAuthority6,
|
||||||
|
IN ULONG SubAuthority7,
|
||||||
|
OUT PSID *Sid
|
||||||
|
);
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlAllocateHeap (
|
RtlAllocateHeap (
|
||||||
|
@ -461,6 +477,10 @@ RtlCopySid (
|
||||||
IN PSID Source
|
IN PSID Source
|
||||||
);
|
);
|
||||||
|
|
||||||
|
VOID STDCALL
|
||||||
|
RtlCopyUnicodeString(PUNICODE_STRING DestinationString,
|
||||||
|
PUNICODE_STRING SourceString);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlCreateAcl(
|
RtlCreateAcl(
|
||||||
|
@ -487,6 +507,19 @@ RtlCreateAtomTable(
|
||||||
IN OUT PRTL_ATOM_TABLE *AtomTable
|
IN OUT PRTL_ATOM_TABLE *AtomTable
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
RtlCreateSecurityDescriptor(
|
||||||
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||||
|
ULONG Revision
|
||||||
|
);
|
||||||
|
|
||||||
|
NTSTATUS STDCALL
|
||||||
|
RtlCreateSecurityDescriptorRelative(
|
||||||
|
PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor,
|
||||||
|
ULONG Revision
|
||||||
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlCreateUserThread (
|
RtlCreateUserThread (
|
||||||
|
@ -617,6 +650,14 @@ RtlMultiByteToUnicodeSize (
|
||||||
ULONG MbSize
|
ULONG MbSize
|
||||||
);
|
);
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
STDCALL
|
||||||
|
RtlPrefixUnicodeString (
|
||||||
|
PUNICODE_STRING String1,
|
||||||
|
PUNICODE_STRING String2,
|
||||||
|
BOOLEAN CaseInsensitive
|
||||||
|
);
|
||||||
|
|
||||||
CHAR STDCALL
|
CHAR STDCALL
|
||||||
RtlUpperChar (CHAR Source);
|
RtlUpperChar (CHAR Source);
|
||||||
|
|
||||||
|
@ -650,6 +691,14 @@ RtlOemStringToUnicodeSize (
|
||||||
POEM_STRING AnsiString
|
POEM_STRING AnsiString
|
||||||
);
|
);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
RtlOemStringToUnicodeString (
|
||||||
|
PUNICODE_STRING DestinationString,
|
||||||
|
POEM_STRING SourceString,
|
||||||
|
BOOLEAN AllocateDestinationString
|
||||||
|
);
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlImageDirectoryEntryToData (
|
RtlImageDirectoryEntryToData (
|
||||||
|
@ -720,6 +769,12 @@ RtlUnicodeStringToAnsiSize (
|
||||||
IN PUNICODE_STRING UnicodeString
|
IN PUNICODE_STRING UnicodeString
|
||||||
);
|
);
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlUnicodeStringToOemSize (
|
||||||
|
IN PUNICODE_STRING UnicodeString
|
||||||
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlUnicodeStringToAnsiString (
|
RtlUnicodeStringToAnsiString (
|
||||||
|
@ -764,6 +819,12 @@ RtlFindMessage (
|
||||||
OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
|
OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
|
||||||
);
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlFreeAnsiString (
|
||||||
|
IN PANSI_STRING AnsiString
|
||||||
|
);
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlFreeHeap (
|
RtlFreeHeap (
|
||||||
|
@ -772,6 +833,12 @@ RtlFreeHeap (
|
||||||
IN PVOID P
|
IN PVOID P
|
||||||
);
|
);
|
||||||
|
|
||||||
|
PVOID
|
||||||
|
STDCALL
|
||||||
|
RtlFreeSid (
|
||||||
|
IN PSID Sid
|
||||||
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlFreeUnicodeString(
|
RtlFreeUnicodeString(
|
||||||
|
@ -902,6 +969,12 @@ RtlInitUnicodeString(
|
||||||
IN OUT PUNICODE_STRING DestinationString,
|
IN OUT PUNICODE_STRING DestinationString,
|
||||||
IN PCWSTR SourceString);
|
IN PCWSTR SourceString);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlInitAnsiString (
|
||||||
|
PANSI_STRING DestinationString,
|
||||||
|
PCSZ SourceString
|
||||||
|
);
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -983,6 +1056,15 @@ RtlSelfRelativeToAbsoluteSD (
|
||||||
|
|
||||||
#endif /* (VER_PRODUCTBUILD >= 2195) */
|
#endif /* (VER_PRODUCTBUILD >= 2195) */
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
STDCALL
|
||||||
|
RtlSetDaclSecurityDescriptor (
|
||||||
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||||
|
BOOLEAN DaclPresent,
|
||||||
|
PACL Dacl,
|
||||||
|
BOOLEAN DaclDefaulted
|
||||||
|
);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
STDCALL
|
||||||
RtlSetGroupSecurityDescriptor (
|
RtlSetGroupSecurityDescriptor (
|
||||||
|
|
|
@ -165,6 +165,25 @@
|
||||||
#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
|
#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
|
||||||
#define RTL_QUERY_REGISTRY_DELETE 0x00000040
|
#define RTL_QUERY_REGISTRY_DELETE 0x00000040
|
||||||
|
|
||||||
|
/* File Result Flags */
|
||||||
|
#define FILE_SUPERSEDED 0x00000000
|
||||||
|
#define FILE_OPENED 0x00000001
|
||||||
|
#define FILE_CREATED 0x00000002
|
||||||
|
#define FILE_OVERWRITTEN 0x00000003
|
||||||
|
#define FILE_EXISTS 0x00000004
|
||||||
|
#define FILE_DOES_NOT_EXIST 0x00000005
|
||||||
|
|
||||||
|
/* Pipe Flags */
|
||||||
|
#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
|
||||||
|
#define FILE_PIPE_MESSAGE_MODE 0x00000001
|
||||||
|
#define FILE_PIPE_QUEUE_OPERATION 0x00000000
|
||||||
|
#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
|
||||||
|
#define FILE_PIPE_INBOUND 0x00000000
|
||||||
|
#define FILE_PIPE_OUTBOUND 0x00000001
|
||||||
|
#define FILE_PIPE_FULL_DUPLEX 0x00000002
|
||||||
|
#define FILE_PIPE_CLIENT_END 0x00000000
|
||||||
|
#define FILE_PIPE_SERVER_END 0x00000001
|
||||||
|
|
||||||
/* Device Charactertics */
|
/* Device Charactertics */
|
||||||
#define FILE_REMOVABLE_MEDIA 0x00000001
|
#define FILE_REMOVABLE_MEDIA 0x00000001
|
||||||
|
|
||||||
|
@ -749,6 +768,31 @@ typedef struct _FILE_ZERO_DATA_INFORMATION
|
||||||
LARGE_INTEGER BeyondFinalZero;
|
LARGE_INTEGER BeyondFinalZero;
|
||||||
} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION;
|
} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_EA_INFORMATION
|
||||||
|
{
|
||||||
|
ULONG EaSize;
|
||||||
|
} FILE_EA_INFORMATION, *PFILE_EA_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_COMPRESSION_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER CompressedFileSize;
|
||||||
|
USHORT CompressionFormat;
|
||||||
|
UCHAR CompressionUnitShift;
|
||||||
|
UCHAR ChunkShift;
|
||||||
|
UCHAR ClusterShift;
|
||||||
|
UCHAR Reserved[3];
|
||||||
|
} FILE_COMPRESSION_INFORMATION, *PFILE_COMPRESSION_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_POSITION_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER CurrentByteOffset;
|
||||||
|
} FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_DISPOSITION_INFORMATION
|
||||||
|
{
|
||||||
|
BOOLEAN DeleteFile;
|
||||||
|
} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
|
||||||
|
|
||||||
typedef struct FILE_ALLOCATED_RANGE_BUFFER
|
typedef struct FILE_ALLOCATED_RANGE_BUFFER
|
||||||
{
|
{
|
||||||
LARGE_INTEGER FileOffset;
|
LARGE_INTEGER FileOffset;
|
||||||
|
@ -766,6 +810,112 @@ typedef struct _FILE_QUOTA_INFORMATION
|
||||||
SID Sid;
|
SID Sid;
|
||||||
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
|
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_INTERNAL_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER IndexNumber;
|
||||||
|
} FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_RENAME_INFORMATION
|
||||||
|
{
|
||||||
|
BOOLEAN ReplaceIfExists;
|
||||||
|
HANDLE RootDirectory;
|
||||||
|
ULONG FileNameLength;
|
||||||
|
WCHAR FileName[1];
|
||||||
|
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_PIPE_INFORMATION
|
||||||
|
{
|
||||||
|
ULONG ReadMode;
|
||||||
|
ULONG CompletionMode;
|
||||||
|
} FILE_PIPE_INFORMATION, *PFILE_PIPE_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_PIPE_LOCAL_INFORMATION
|
||||||
|
{
|
||||||
|
ULONG NamedPipeType;
|
||||||
|
ULONG NamedPipeConfiguration;
|
||||||
|
ULONG MaximumInstances;
|
||||||
|
ULONG CurrentInstances;
|
||||||
|
ULONG InboundQuota;
|
||||||
|
ULONG ReadDataAvailable;
|
||||||
|
ULONG OutboundQuota;
|
||||||
|
ULONG WriteQuotaAvailable;
|
||||||
|
ULONG NamedPipeState;
|
||||||
|
ULONG NamedPipeEnd;
|
||||||
|
} FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_PIPE_REMOTE_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER CollectDataTime;
|
||||||
|
ULONG MaximumCollectionCount;
|
||||||
|
} FILE_PIPE_REMOTE_INFORMATION, *PFILE_PIPE_REMOTE_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_MAILSLOT_QUERY_INFORMATION
|
||||||
|
{
|
||||||
|
ULONG MaximumMessageSize;
|
||||||
|
ULONG MailslotQuota;
|
||||||
|
ULONG NextMessageSize;
|
||||||
|
ULONG MessagesAvailable;
|
||||||
|
LARGE_INTEGER ReadTimeout;
|
||||||
|
} FILE_MAILSLOT_QUERY_INFORMATION, *PFILE_MAILSLOT_QUERY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_MAILSLOT_SET_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER ReadTimeout;
|
||||||
|
} FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_BOTH_DIR_INFORMATION
|
||||||
|
{
|
||||||
|
ULONG NextEntryOffset;
|
||||||
|
ULONG FileIndex;
|
||||||
|
LARGE_INTEGER CreationTime;
|
||||||
|
LARGE_INTEGER LastAccessTime;
|
||||||
|
LARGE_INTEGER LastWriteTime;
|
||||||
|
LARGE_INTEGER ChangeTime;
|
||||||
|
LARGE_INTEGER EndOfFile;
|
||||||
|
LARGE_INTEGER AllocationSize;
|
||||||
|
ULONG FileAttributes;
|
||||||
|
ULONG FileNameLength;
|
||||||
|
ULONG EaSize;
|
||||||
|
CCHAR ShortNameLength;
|
||||||
|
WCHAR ShortName[12];
|
||||||
|
WCHAR FileName[1];
|
||||||
|
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_COMPLETION_INFORMATION
|
||||||
|
{
|
||||||
|
HANDLE Port;
|
||||||
|
PVOID Key;
|
||||||
|
} FILE_COMPLETION_INFORMATION, *PFILE_COMPLETION_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_LINK_INFORMATION
|
||||||
|
{
|
||||||
|
BOOLEAN ReplaceIfExists;
|
||||||
|
HANDLE RootDirectory;
|
||||||
|
ULONG FileNameLength;
|
||||||
|
WCHAR FileName[1];
|
||||||
|
} FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_NAME_INFORMATION
|
||||||
|
{
|
||||||
|
ULONG FileNameLength;
|
||||||
|
WCHAR FileName[1];
|
||||||
|
} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_ALLOCATION_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER AllocationSize;
|
||||||
|
} FILE_ALLOCATION_INFORMATION, *PFILE_ALLOCATION_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_END_OF_FILE_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER EndOfFile;
|
||||||
|
} FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER ValidDataLength;
|
||||||
|
} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File System
|
* File System
|
||||||
*/
|
*/
|
||||||
|
@ -775,6 +925,15 @@ typedef struct _FILE_FS_DEVICE_INFORMATION
|
||||||
ULONG Characteristics;
|
ULONG Characteristics;
|
||||||
} FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
|
} FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _FILE_FS_VOLUME_INFORMATION
|
||||||
|
{
|
||||||
|
LARGE_INTEGER VolumeCreationTime;
|
||||||
|
ULONG VolumeSerialNumber;
|
||||||
|
ULONG VolumeLabelLength;
|
||||||
|
BOOLEAN SupportsObjects;
|
||||||
|
WCHAR VolumeLabel[1];
|
||||||
|
} FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Registry Key Value
|
* Registry Key Value
|
||||||
*/
|
*/
|
||||||
|
@ -845,6 +1004,23 @@ typedef struct _PROCESS_BASIC_INFORMATION
|
||||||
ULONG InheritedFromUniqueProcessId;
|
ULONG InheritedFromUniqueProcessId;
|
||||||
} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
|
} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
|
||||||
|
|
||||||
|
/* File Pipe Structures for the FSCTLs */
|
||||||
|
typedef struct _FILE_PIPE_WAIT_FOR_BUFFER
|
||||||
|
{
|
||||||
|
LARGE_INTEGER Timeout;
|
||||||
|
ULONG NameLength;
|
||||||
|
BOOLEAN TimeoutSpecified;
|
||||||
|
WCHAR Name[1];
|
||||||
|
} FILE_PIPE_WAIT_FOR_BUFFER, *PFILE_PIPE_WAIT_FOR_BUFFER;
|
||||||
|
|
||||||
|
typedef struct _FILE_PIPE_PEEK_BUFFER
|
||||||
|
{
|
||||||
|
ULONG NamedPipeState;
|
||||||
|
ULONG ReadDataAvailable;
|
||||||
|
ULONG NumberOfMessages;
|
||||||
|
ULONG MessageLength;
|
||||||
|
CHAR Data[1];
|
||||||
|
} FILE_PIPE_PEEK_BUFFER, *PFILE_PIPE_PEEK_BUFFER;
|
||||||
|
|
||||||
/* The Kerner/User Shared Data Structure */
|
/* The Kerner/User Shared Data Structure */
|
||||||
typedef struct _KUSER_SHARED_DATA
|
typedef struct _KUSER_SHARED_DATA
|
||||||
|
|
|
@ -280,6 +280,15 @@ typedef struct _ATOM_TABLE_INFORMATION
|
||||||
USHORT Atoms[1];
|
USHORT Atoms[1];
|
||||||
} ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
|
} ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Object Directory
|
||||||
|
*/
|
||||||
|
typedef struct _OBJECT_DIRECTORY_INFORMATION
|
||||||
|
{
|
||||||
|
UNICODE_STRING ObjectName;
|
||||||
|
UNICODE_STRING ObjectTypeName;
|
||||||
|
} OBJECT_DIRECTORY_INFORMATION, *POBJECT_DIRECTORY_INFORMATION;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Memory
|
* Memory
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -34,4 +34,11 @@
|
||||||
#define NT_SEVERITY(StatCode) (((StatCode) >> NTSTAT_SEVERITY_SHIFT) & NTSTAT_SEVERITY_MASK)
|
#define NT_SEVERITY(StatCode) (((StatCode) >> NTSTAT_SEVERITY_SHIFT) & NTSTAT_SEVERITY_MASK)
|
||||||
#define NT_FACILITY(StatCode) (((StatCode) >> NTSTAT_FACILITY_SHIFT) & NTSTAT_FACILITY_MASK)
|
#define NT_FACILITY(StatCode) (((StatCode) >> NTSTAT_FACILITY_SHIFT) & NTSTAT_FACILITY_MASK)
|
||||||
#define NT_CUSTOMER(StatCode) ((StatCode) & NTSTAT_CUSTOMER_MASK)
|
#define NT_CUSTOMER(StatCode) ((StatCode) & NTSTAT_CUSTOMER_MASK)
|
||||||
|
#define RELATIVE_TIME(wait) (-(wait))
|
||||||
|
#define NANOS_TO_100NS(nanos) (((LONGLONG)(nanos)) / 100)
|
||||||
|
#define MICROS_TO_100NS(micros) (((LONGLONG)(micros)) * NANOS_TO_100NS(1000))
|
||||||
|
#define MILLIS_TO_100NS(milli) (((LONGLONG)(milli)) * MICROS_TO_100NS(1000))
|
||||||
|
#define SECONDS_TO_100NS(seconds) (((LONGLONG)(seconds)) * MILLIS_TO_100NS(1000))
|
||||||
|
#define MINUTES_TO_100NS(minutes) (((LONGLONG)(minutes)) * SECONDS_TO_100NS(60))
|
||||||
|
#define HOURS_TO_100NS(hours) (((LONGLONG)(hours)) * MINUTES_TO_100NS(60))
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue