113 lines
1.9 KiB
C
113 lines
1.9 KiB
C
/*
|
||
|
||
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_
|
||
|
||
|