mirror of https://github.com/tongzx/nt5src
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.
113 lines
1.9 KiB
113 lines
1.9 KiB
/*
|
|
|
|
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_
|
|
|
|
|