windows-nt/Source/XPSP1/NT/base/fs/dfs/driver/localvol.h
2020-09-26 16:20:57 +08:00

340 lines
6.1 KiB
C

//+----------------------------------------------------------------------------
//
// Copyright (C) 1992, Microsoft Corporation.
//
// File: LOCALVOL.H
//
// Contents: This module provides the prototypes and structures for
// the routines associated with managing local volumes.
//
// Functions:
//
//-----------------------------------------------------------------------------
#ifndef _LOCALVOL_
#define _LOCALVOL_
NTSTATUS
DfsFsctrlInitLocalPartitions(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
BuildLocalVolPath(
OUT PUNICODE_STRING pFullName,
IN PDFS_SERVICE pService,
IN PUNICODE_STRING pRemPath
);
NTSTATUS
DfsFsctrlGetLocalVolumeEntry(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
DfsFsctrlGetEntryType(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
DfsFsctrlGetAllPktEntries(
IN PIRP Irp,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength);
NTSTATUS
DfsFsctrlGetChildVolumes(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
DfsFsctrlSetServiceState(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlCreateLocalPartition(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlDeleteLocalPartition(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlSetVolumeState(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlDCSetVolumeState(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlSetVolumeTimeout(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlCreateExitPoint(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
DfsFsctrlDeleteExitPoint(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlModifyLocalVolPrefix(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsFsctrlGetServerInfo(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
DfsFsctrlCheckStgIdInUse(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
PktFsctrlVerifyLocalVolumeKnowledge(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlPruneLocalVolume(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlIsChildnameLegal(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlCreateEntry(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlCreateSubordinateEntry(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlDestroyEntry(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlSetServerInfo(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
DfsRegModifyLocalVolume(
IN PDFS_PKT_ENTRY Entry,
IN PUNICODE_STRING oldPrefix
);
NTSTATUS
DfsInternalCreateLocalPartition(
IN PUNICODE_STRING StgId,
IN BOOLEAN CreateStorage,
IN OUT PDFS_LOCAL_VOLUME_CONFIG pInfo
);
NTSTATUS
DfsInternalDeleteLocalVolume(
IN PDFS_PKT_ENTRY_ID entryId
);
NTSTATUS
DfsInternalDeleteExitPoint(
IN PDFS_PKT_ENTRY_ID entryId,
IN ULONG Type
);
NTSTATUS
DfsDeleteExitPath(
PDFS_SERVICE pService,
PUNICODE_STRING pRemPath
);
VOID
DfsAgePktEntries(
// IN PDFS_TIMER_CONTEXT DfsTimerContext
IN PVOID DfsTimerContext
);
NTSTATUS
PktFsctrlSetRelationInfo(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlGetRelationInfo(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
IN PVOID OutputBuffer,
IN ULONG OutputBufferLength
);
NTSTATUS
DfsGetPrincipalName(
OUT PUNICODE_STRING PrincipalName
);
NTSTATUS
DfsInternalCreateExitPoint(
IN PDFS_PKT_ENTRY_ID peid,
IN ULONG Type,
IN ULONG Disposition,
OUT PUNICODE_STRING ShortPrefix
);
NTSTATUS
DfsInternalDeleteExitPoint(
IN PDFS_PKT_ENTRY_ID ExitPtId,
IN ULONG Type
);
NTSTATUS
DfsInternalModifyPrefix(
IN PDFS_PKT_ENTRY_ID peid
);
BOOLEAN
DfsStorageIdLegal(
PUNICODE_STRING StorageId
);
BOOLEAN
DfsExitPtLegal(
IN PDFS_PKT Pkt,
IN PDFS_PKT_ENTRY localEntry,
IN PUNICODE_STRING Remaining
);
BOOLEAN
DfsFileOnExitPath(
PDFS_PKT Pkt,
PUNICODE_STRING StorageId
);
NTSTATUS
DfspTakeVolumeOffline(
IN PDFS_PKT pkt,
IN PDFS_PKT_ENTRY pktEntry
);
NTSTATUS
PktpFixupRelationInfo(
IN PDFS_PKT_RELATION_INFO Local,
IN PDFS_PKT_RELATION_INFO Remote);
#if DBG
NTSTATUS
PktFsctrlFlushCache(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength
);
NTSTATUS
PktFsctrlShufflePktEntry(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength);
NTSTATUS
PktFsctrlGetFirstSvc(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer,
OUT ULONG OutputBufferLength);
NTSTATUS
PktFsctrlGetNextSvc(
IN PIRP Irp,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer,
OUT ULONG OutputBufferLength);
#endif // DBG
#endif // _LOCALVOL_