92 lines
1.5 KiB
C
92 lines
1.5 KiB
C
|
|
|||
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1997 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
MountSup.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module implements the support routines in Ntfs for reparse points.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Felipe Cabrera [cabrera] 30-Jun-1997
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "NtfsProc.h"
|
|||
|
|
|||
|
#define Dbg DEBUG_TRACE_FSCTRL
|
|||
|
|
|||
|
//
|
|||
|
// Define a tag for general pool allocations from this module
|
|||
|
//
|
|||
|
|
|||
|
#undef MODULE_POOL_TAG
|
|||
|
#define MODULE_POOL_TAG ('PFtN')
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#ifdef ALLOC_PRAGMA
|
|||
|
#pragma alloc_text(PAGE, NtfsInitializeReparsePointIndex)
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
NtfsInitializeReparsePointIndex (
|
|||
|
IN PIRP_CONTEXT IrpContext,
|
|||
|
IN PFCB Fcb,
|
|||
|
IN PVCB Vcb
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine opens the mount points index for the volume. If the index does not
|
|||
|
exist it is created and initialized.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
Fcb - Pointer to Fcb for the object id file.
|
|||
|
|
|||
|
Vcb - Volume control block for volume being mounted.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
None
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
UNICODE_STRING IndexName = CONSTANT_UNICODE_STRING( L"$R" );
|
|||
|
|
|||
|
PAGED_CODE();
|
|||
|
|
|||
|
NtfsAcquireExclusiveFcb( IrpContext, Fcb, NULL, 0 );
|
|||
|
|
|||
|
try {
|
|||
|
|
|||
|
NtOfsCreateIndex( IrpContext,
|
|||
|
Fcb,
|
|||
|
IndexName,
|
|||
|
CREATE_OR_OPEN,
|
|||
|
0,
|
|||
|
COLLATION_NTOFS_ULONGS,
|
|||
|
NtOfsCollateUlongs,
|
|||
|
NULL,
|
|||
|
&Vcb->ReparsePointTableScb );
|
|||
|
} finally {
|
|||
|
|
|||
|
NtfsReleaseFcb( IrpContext, Fcb );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|