update for HEAD-2003091401
[reactos.git] / ntoskrnl / fs / name.c
index 2a9e907..682266a 100644 (file)
@@ -23,6 +23,7 @@ PUCHAR        * FsRtlLegalAnsiCharacterArray = NULL;
  * NOTE
  *     From Bo Branten's ntifs.h v25.
  *
+ * @unimplemented
  */
 BOOLEAN
 STDCALL
@@ -47,6 +48,7 @@ FsRtlAreNamesEqual (
  *
  * RETURN VALUE
  *
+ * @unimplemented
  */
 VOID
 STDCALL
@@ -72,14 +74,37 @@ FsRtlDissectName (
  *
  * NOTE
  *     From Bo Branten's ntifs.h v12.
+ *
+ * @implemented
  */
-BOOLEAN
-STDCALL
-FsRtlDoesNameContainWildCards (
-       IN      PUNICODE_STRING Name
-       )
+BOOLEAN STDCALL
+FsRtlDoesNameContainWildCards (IN PUNICODE_STRING Name)
 {
+  PWCHAR Ptr;
+
+  if (Name->Length == 0)
+    return FALSE;
+
+  /* Set pointer to last character of the string */
+  Ptr = (PWCHAR)((ULONG_PTR)Name->Buffer + Name->Length - sizeof(WCHAR));
+
+  while (Ptr > Name->Buffer)
+    {
+      /* Stop at backslash */
+      if (*Ptr == L'\\')
        return FALSE;
+
+      /* Check for wildcards */
+      if ((*Ptr < '@') &&
+         (*Ptr == L'\"' || *Ptr == L'*' || *Ptr == L'<' ||
+          *Ptr == L'>' || *Ptr == L'?'))
+       return TRUE;
+
+      /* Move to previous character */
+      Ptr--;
+    }
+
+  return FALSE;
 }
 
 
@@ -95,6 +120,8 @@ FsRtlDoesNameContainWildCards (
  *
  * NOTE
  *     From Bo Branten's ntifs.h v12.
+ *
+ * @unimplemented
  */
 BOOLEAN
 STDCALL