ReactOS 0.4.16-dev-297-gc569aee
fsrtlpc.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/fsrtl/fsrtlpc.c
5 * PURPOSE: Contains initialization and support code for the FsRtl
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9/* INCLUDES ******************************************************************/
10
11#include <ntoskrnl.h>
12#define NDEBUG
13#include <debug.h>
14
15/* GLOBALS *******************************************************************/
16
21
23{
24 0, /* CTRL+@, 0x00 */
25 FSRTL_OLE_LEGAL, /* CTRL+A, 0x01 */
26 FSRTL_OLE_LEGAL, /* CTRL+B, 0x02 */
27 FSRTL_OLE_LEGAL, /* CTRL+C, 0x03 */
28 FSRTL_OLE_LEGAL, /* CTRL+D, 0x04 */
29 FSRTL_OLE_LEGAL, /* CTRL+E, 0x05 */
30 FSRTL_OLE_LEGAL, /* CTRL+F, 0x06 */
31 FSRTL_OLE_LEGAL, /* CTRL+G, 0x07 */
32 FSRTL_OLE_LEGAL, /* CTRL+H, 0x08 */
33 FSRTL_OLE_LEGAL, /* CTRL+I, 0x09 */
34 FSRTL_OLE_LEGAL, /* CTRL+J, 0x0a */
35 FSRTL_OLE_LEGAL, /* CTRL+K, 0x0b */
36 FSRTL_OLE_LEGAL, /* CTRL+L, 0x0c */
37 FSRTL_OLE_LEGAL, /* CTRL+M, 0x0d */
38 FSRTL_OLE_LEGAL, /* CTRL+N, 0x0e */
39 FSRTL_OLE_LEGAL, /* CTRL+O, 0x0f */
40 FSRTL_OLE_LEGAL, /* CTRL+P, 0x10 */
41 FSRTL_OLE_LEGAL, /* CTRL+Q, 0x11 */
42 FSRTL_OLE_LEGAL, /* CTRL+R, 0x12 */
43 FSRTL_OLE_LEGAL, /* CTRL+S, 0x13 */
44 FSRTL_OLE_LEGAL, /* CTRL+T, 0x14 */
45 FSRTL_OLE_LEGAL, /* CTRL+U, 0x15 */
46 FSRTL_OLE_LEGAL, /* CTRL+V, 0x16 */
47 FSRTL_OLE_LEGAL, /* CTRL+W, 0x17 */
48 FSRTL_OLE_LEGAL, /* CTRL+X, 0x18 */
49 FSRTL_OLE_LEGAL, /* CTRL+Y, 0x19 */
50 FSRTL_OLE_LEGAL, /* CTRL+Z, 0x1a */
51 FSRTL_OLE_LEGAL, /* CTRL+[, 0x1b */
52 FSRTL_OLE_LEGAL, /* CTRL+\, 0x1c */
53 FSRTL_OLE_LEGAL, /* CTRL+], 0x1d */
54 FSRTL_OLE_LEGAL, /* CTRL+^, 0x1e */
55 FSRTL_OLE_LEGAL, /* CTRL+_, 0x1f */
58 FSRTL_OLE_LEGAL | FSRTL_WILD_CHARACTER, /* `"', 0x22 */
66 FSRTL_OLE_LEGAL | FSRTL_WILD_CHARACTER, /* `*', 0x2a */
71 0, /* `/', 0x2f */
82 FSRTL_NTFS_LEGAL, /* `:', 0x3a */
84 FSRTL_OLE_LEGAL | FSRTL_WILD_CHARACTER, /* `<', 0x3c */
86 FSRTL_OLE_LEGAL | FSRTL_WILD_CHARACTER, /* `>', 0x3e */
87 FSRTL_OLE_LEGAL | FSRTL_WILD_CHARACTER, /* `?', 0x3f */
116 0, /* `\', 0x5c */
148 FSRTL_OLE_LEGAL, /* `|', 0x7c */
152};
153
155
156/* PRIVATE FUNCTIONS *********************************************************/
157
158CODE_SEG("INIT")
160NTAPI
162{
163 ULONG i;
164
165 /* Initialize the list for granted locks */
167 NULL,
168 NULL,
169 0,
170 sizeof(FILE_LOCK),
172 0);
173
177
178 /* Allocate the Resource Buffer */
181 sizeof(ERESOURCE),
182 'eRsF');
183
184 /* Initialize the Resources */
185 for (i = 0; i < FSRTL_MAX_RESOURCES; i++)
186 {
188 }
189
191}
192
193/* PUBLIC FUNCTIONS **********************************************************/
194
195/*++
196 * @name FsRtlAllocateResource
197 * @implemented NT 4.0
198 *
199 * The FsRtlAllocateResource routine returns a pre-initialized ERESOURCE
200 * for use by a File System Driver.
201 *
202 * @return A Pointer to a pre-initialized ERESOURCE.
203 *
204 * @remarks The File System Library only provides up to 16 Resources.
205 *
206 *--*/
208NTAPI
210{
211 PAGED_CODE();
212
213 /* Return a preallocated ERESOURCE */
216}
217
#define PAGED_CODE()
#define CODE_SEG(...)
static const UCHAR LegalAnsiCharacterArray[]
Definition: FsRtlLegal.c:104
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
#define NULL
Definition: types.h:112
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
#define NonPagedPool
Definition: env_spec_w32.h:307
ULONG ERESOURCE
Definition: env_spec_w32.h:594
PAGED_LOOKASIDE_LIST FsRtlFileLockLookasideList
Definition: filelock.c:17
#define FSRTL_MAX_RESOURCES
Definition: fsrtl.h:45
const UCHAR *const FsRtlLegalAnsiCharacterArray
Definition: fsrtlpc.c:154
ULONG FsRtlPagingIoResourceSelector
Definition: fsrtlpc.c:18
PERESOURCE FsRtlPagingIoResources
Definition: fsrtlpc.c:17
BOOLEAN NTAPI FsRtlInitSystem(VOID)
Definition: fsrtlpc.c:161
PERESOURCE NTAPI FsRtlAllocateResource(VOID)
Definition: fsrtlpc.c:209
#define FSRTL_HPFS_LEGAL
Definition: fsrtltypes.h:83
#define FSRTL_OLE_LEGAL
Definition: fsrtltypes.h:86
#define FSRTL_WILD_CHARACTER
Definition: fsrtltypes.h:85
#define FSRTL_NTFS_LEGAL
Definition: fsrtltypes.h:84
#define FSRTL_FAT_LEGAL
Definition: fsrtltypes.h:82
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
VOID NTAPI FsRtlInitializeLargeMcbs(VOID)
Definition: largemcb.c:479
VOID NTAPI ExInitializePagedLookasideList(IN PPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate OPTIONAL, IN PFREE_FUNCTION Free OPTIONAL, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth)
Definition: lookas.c:270
PVOID NTAPI FsRtlAllocatePoolWithTag(IN POOL_TYPE PoolType, IN ULONG NumberOfBytes, IN ULONG Tag)
Definition: filter.c:229
VOID NTAPI KeInitializeSemaphore(IN PKSEMAPHORE Semaphore, IN LONG Count, IN LONG Limit)
Definition: semphobj.c:22
NTSTATUS NTAPI FsRtlInitializeWorkerThread(VOID)
Definition: stackovf.c:150
#define IFS_POOL_TAG
Definition: tag.h:67
VOID NTAPI FsRtlInitializeTunnels(VOID)
Definition: tunnel.c:200
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
#define MAXLONG
Definition: umtypes.h:116
KSEMAPHORE FsRtlpUncSemaphore
Definition: unc.c:15
#define ExInitializeResource
Definition: exfuncs.h:346
unsigned char UCHAR
Definition: xmlstorage.h:181
#define const
Definition: zconf.h:233