You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
3.0 KiB
157 lines
3.0 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Index.h
|
|
|
|
Abstract:
|
|
|
|
This module contains definitions common to only indexsup.c and viewsup.c
|
|
|
|
Author:
|
|
|
|
Tom Miller [TomM] 8-Jan-1996
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
//
|
|
// Define all private support routines. Documentation of routine interface
|
|
// is with the routine itself.
|
|
//
|
|
|
|
VOID
|
|
NtfsGrowLookupStack (
|
|
IN PSCB Scb,
|
|
IN OUT PINDEX_CONTEXT IndexContext,
|
|
IN PINDEX_LOOKUP_STACK *Sp
|
|
);
|
|
|
|
BOOLEAN
|
|
ReadIndexBuffer (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN LONGLONG IndexBlock,
|
|
IN BOOLEAN Reread,
|
|
OUT PINDEX_LOOKUP_STACK Sp
|
|
);
|
|
|
|
PINDEX_ALLOCATION_BUFFER
|
|
GetIndexBuffer (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
OUT PINDEX_LOOKUP_STACK Sp,
|
|
OUT PLONGLONG EndOfValidData
|
|
);
|
|
|
|
VOID
|
|
DeleteIndexBuffer (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN VCN IndexBlockNumber
|
|
);
|
|
|
|
VOID
|
|
FindFirstIndexEntry (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PVOID Value,
|
|
IN OUT PINDEX_CONTEXT IndexContext
|
|
);
|
|
|
|
BOOLEAN
|
|
FindNextIndexEntry (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PVOID Value,
|
|
IN BOOLEAN ValueContainsWildcards,
|
|
IN BOOLEAN IgnoreCase,
|
|
IN OUT PINDEX_CONTEXT IndexContext,
|
|
IN BOOLEAN NextFlag,
|
|
OUT PBOOLEAN MustRestart OPTIONAL
|
|
);
|
|
|
|
PATTRIBUTE_RECORD_HEADER
|
|
FindMoveableIndexRoot (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN OUT PINDEX_CONTEXT IndexContext
|
|
);
|
|
|
|
PINDEX_ENTRY
|
|
BinarySearchIndex (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PINDEX_LOOKUP_STACK Sp,
|
|
IN PVOID Value
|
|
);
|
|
|
|
BOOLEAN
|
|
AddToIndex (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PINDEX_ENTRY InsertIndexEntry,
|
|
IN OUT PINDEX_CONTEXT IndexContext,
|
|
OUT PQUICK_INDEX QuickIndex OPTIONAL,
|
|
IN BOOLEAN FindRoot
|
|
);
|
|
|
|
VOID
|
|
InsertSimpleRoot (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PINDEX_ENTRY InsertIndexEntry,
|
|
IN OUT PINDEX_CONTEXT IndexContext
|
|
);
|
|
|
|
VOID
|
|
PushIndexRoot (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN OUT PINDEX_CONTEXT IndexContext
|
|
);
|
|
|
|
VOID
|
|
InsertSimpleAllocation (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PINDEX_ENTRY InsertIndexEntry,
|
|
IN PINDEX_LOOKUP_STACK Sp,
|
|
OUT PQUICK_INDEX QuickIndex OPTIONAL
|
|
);
|
|
|
|
PINDEX_ENTRY
|
|
InsertWithBufferSplit (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PINDEX_ENTRY InsertIndexEntry,
|
|
IN OUT PINDEX_CONTEXT IndexContext,
|
|
OUT PQUICK_INDEX QuickIndex OPTIONAL
|
|
);
|
|
|
|
VOID
|
|
DeleteFromIndex (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN OUT PINDEX_CONTEXT IndexContext
|
|
);
|
|
|
|
VOID
|
|
DeleteSimple (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN PINDEX_ENTRY IndexEntry,
|
|
IN OUT PINDEX_CONTEXT IndexContext
|
|
);
|
|
|
|
VOID
|
|
PruneIndex (
|
|
IN PIRP_CONTEXT IrpContext,
|
|
IN PSCB Scb,
|
|
IN OUT PINDEX_CONTEXT IndexContext,
|
|
OUT PINDEX_ENTRY *DeleteEntry
|
|
);
|
|
|