+BOOLEAN
+CdIsLegalName (
+ _In_ PIRP_CONTEXT IrpContext,
+ _In_ PUNICODE_STRING FileName
+ )
+
+/*++
+
+Routine Description:
+
+ This routine checks if the name is a legal ISO 9660 name.
+
+Arguments:
+
+ FileName - String of bytes containing the name.
+
+Return Value:
+
+ BOOLEAN - TRUE if this name is a legal, FALSE otherwise.
+
+--*/
+
+{
+ PWCHAR Wchar;
+
+ PAGED_CODE();
+
+ UNREFERENCED_PARAMETER( IrpContext );
+
+ //
+ // Check if name corresponds to a legal file name.
+ //
+
+ for (Wchar = FileName->Buffer;
+ Wchar < Add2Ptr( FileName->Buffer, FileName->Length, PWCHAR );
+ Wchar++) {
+
+ if ((*Wchar < 0xff) &&
+ !FsRtlIsAnsiCharacterLegalHpfs( *Wchar, FALSE ) &&
+ (*Wchar != L'"') &&
+ (*Wchar != L'<') &&
+ (*Wchar != L'>') &&
+ (*Wchar != L'|')) {
+
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+\f