Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

125 lines
3.0 KiB

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
FakeFind.c
Abstract:
BUGBUG
Author:
JR (John Rogers, JohnRo@Microsoft) 06-Apr-1993
Environment:
Requires ANSI C extensions: slash-slash comments, long external names.
Revision History:
06-Apr-1993 JohnRo
Created.
16-Apr-1993 JohnRo
Vastly improved handling of single files.
Added print of EA size.
16-Apr-1993 JohnRo
Added prints of various time fields.
20-Apr-1993 JohnRo
Display time in milliseconds too, as CompareFileTime has problems.
07-May-1993 JohnRo
RAID 3258: file not updated due to ERROR_INVALID_USER_BUFFER.
13-Jun-1993 JohnRo
RAID 13080: Allow repl between different timezones.
15-Jun-1993 JohnRo
Extracted FakeFindData() for use by multiple test apps.
--*/
// These must be included first:
#include <windows.h> // IN, LPTSTR, TRUE, etc.
#include <lmcons.h> // NET_API_STATUS.
// These may be included in any order:
#include <assert.h> // assert().
#include <filefind.h> // LPREPL_FIND_HANDLE, etc.
#include <netdebug.h> // FORMAT_ equates.
#include <repldefs.h> // ReplGetEaSize().
#include <repltest.h> // My prototype, ShowTime().
#include <stdio.h> // printf().
#include <tstr.h> // STRCPY(), TCHAR_EOS, etc.
VOID
FakeFindData(
IN LPCTSTR FileName,
IN BOOL Verbose,
OUT LPREPL_WIN32_FIND_DATA FindData
)
{
HANDLE FindHandle = INVALID_HANDLE_VALUE;
LPCTSTR LastPathSep;
LPCTSTR PartOfNameToCopy;
assert( FindData != NULL );
FindHandle = FindFirstFile(
(LPTSTR) FileName,
(LPWIN32_FIND_DATA) (LPVOID) FindData );
if (FindHandle == INVALID_HANDLE_VALUE) {
assert( FALSE ); // BUGBUG
goto Cleanup;
}
// Strip off dir names and backslashes.
LastPathSep = STRRCHR( FileName, TCHAR_BACKSLASH );
if (LastPathSep != NULL) {
PartOfNameToCopy = LastPathSep + 1;
} else {
PartOfNameToCopy = FileName;
}
// Strip off D: if that's there.
if (STRLEN( PartOfNameToCopy ) >= 2) {
if (PartOfNameToCopy[1] == TCHAR_COLON) {
PartOfNameToCopy = PartOfNameToCopy+2;
}
}
if (Verbose) {
(VOID) printf(
"File name is '" FORMAT_LPTSTR "'.\n", PartOfNameToCopy );
ShowTime( "access time (from dir)",
&(FindData->fdFound.ftLastAccessTime) );
ShowTime( "create time (from dir)",
&(FindData->fdFound.ftCreationTime) );
ShowTime( "write time (from dir)",
&(FindData->fdFound.ftLastWriteTime) );
}
(VOID) STRCPY(
FindData->fdFound.cFileName, // dest
PartOfNameToCopy ); // src
FindData->nEaSize = ReplGetEaSize( FileName );
if (Verbose) {
(VOID) printf( "EA size is " FORMAT_DWORD ".\n", FindData->nEaSize );
}
Cleanup:
if (FindHandle != INVALID_HANDLE_VALUE) {
(VOID) FindClose( FindHandle );
}
} // FakeFindData