* Created 01/11/98
*/
+/* INCLUDES *****************************************************************/
+
#include <k32.h>
#define NDEBUG
#include <debug.h>
+/* FUNCTIONS ****************************************************************/
+
/*
* @implemented
*/
*/
HANDLE
WINAPI
-FindFirstChangeNotificationA (
- LPCSTR lpPathName,
- BOOL bWatchSubtree,
- DWORD dwNotifyFilter
- )
+FindFirstChangeNotificationA(IN LPCSTR lpPathName,
+ IN BOOL bWatchSubtree,
+ IN DWORD dwNotifyFilter)
{
- PWCHAR PathNameW;
-
- if (!(PathNameW = FilenameA2W(lpPathName, FALSE)))
- return INVALID_HANDLE_VALUE;
-
- return FindFirstChangeNotificationW (PathNameW ,
- bWatchSubtree,
- dwNotifyFilter);
+ NTSTATUS Status;
+ ANSI_STRING PathNameString;
+
+ RtlInitAnsiString(&PathNameString, lpPathName);
+ Status = RtlAnsiStringToUnicodeString(&(NtCurrentTeb()->StaticUnicodeString), &PathNameString, FALSE);
+ if (!NT_SUCCESS(Status))
+ {
+ if (Status != STATUS_BUFFER_OVERFLOW)
+ {
+ SetLastError(ERROR_FILENAME_EXCED_RANGE);
+ }
+ else
+ {
+ BaseSetLastNTError(Status);
+ }
+ return INVALID_HANDLE_VALUE;
+ }
+
+ return FindFirstChangeNotificationW(NtCurrentTeb()->StaticUnicodeString.Buffer,
+ bWatchSubtree, dwNotifyFilter);
}