windows-nt/Source/XPSP1/NT/net/sfm/afp/server/nwtrash.h
2020-09-26 16:20:57 +08:00

113 lines
1.9 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Copyright (c) 1992 Microsoft Corporation
Module Name:
nwtrash.h
Abstract:
This file defines the file network trash folder routine prototypes
Author:
Sue Adams (microsoft!suea)
Revision History:
13 Aug 1992 Initial Version
Notes: Tab stop: 4
--*/
#ifndef _NWTRASH_
#define _NWTRASH_
//
// NtOpenFile/NtCreateFile values for the network trash folder
//
#define AFP_NWT_ACCESS FILEIO_ACCESS_DELETE
#define AFP_NWT_SHAREMODE FILE_SHARE_READ | FILE_SHARE_WRITE
#define AFP_NWT_OPTIONS FILEIO_OPEN_DIR
#define AFP_NWT_ATTRIBS FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_HIDDEN
#define AFP_NWT_DISPOSITION FILEIO_CREATE_SOFT
typedef struct _WalkDirNode {
BOOLEAN wdn_Enumerated;
FILESYSHANDLE wdn_Handle;
UNICODE_STRING wdn_RelativePath;
struct _WalkDirNode *wdn_Next;
} WALKDIR_NODE, *PWALKDIR_NODE;
typedef NTSTATUS (*WALKDIR_WORKER)(PFILESYSHANDLE phRelative, PWCHAR Name, ULONG Namelen, BOOLEAN IsDir);
extern
NTSTATUS
AfpCreateNetworkTrash(
IN PVOLDESC pVolDesc
);
extern
NTSTATUS
AfpDeleteNetworkTrash(
IN PVOLDESC pVolDesc,
IN BOOLEAN VolumeStart
);
extern
NTSTATUS
AfpWalkDirectoryTree(
IN PFILESYSHANDLE phTargetDir,
IN WALKDIR_WORKER NodeWorker
);
extern
NTSTATUS
AfpGetNextDirectoryInfo(
IN OUT PFILE_DIRECTORY_INFORMATION * ppInfoBuf,
OUT PWCHAR * pNodeName,
OUT PULONG pNodeNameLen,
OUT PBOOLEAN pIsDir
);
#ifdef NWTRASH_LOCALS
LOCAL
NTSTATUS
afpCleanNetworkTrash(
IN PVOLDESC pVolDesc,
IN PFILESYSHANDLE phNWT,
IN PDFENTRY pDfeNWT OPTIONAL
);
LOCAL
NTSTATUS
afpPushDirNode(
IN OUT PWALKDIR_NODE * ppStackTop,
IN PUNICODE_STRING pParentPath, // path to parent (NULL iff walk target)
IN PUNICODE_STRING pDirName // name of current directory node
);
LOCAL
VOID
afpPopDirNode(
IN OUT PWALKDIR_NODE * ppStackTop
);
LOCAL
NTSTATUS
afpNwtDeleteFileEntity(
IN PFILESYSHANDLE phRelative,
IN PWCHAR Name,
IN ULONG Namelen,
IN BOOLEAN IsDir
);
#endif // NWTRASH_LOCALS
#endif // _NWTRASH_