/*************************************************************************** * Copyright (c) 2024 Microsoft Corporation * * This program and the accompanying materials are made available under the * terms of the MIT License which is available at * https://opensource.org/licenses/MIT. * * SPDX-License-Identifier: MIT **************************************************************************/ /**************************************************************************/ /**************************************************************************/ /** */ /** FileX Component */ /** */ /** Unicode */ /** */ /**************************************************************************/ /**************************************************************************/ #define FX_SOURCE_CODE /* Include necessary system files. */ #include "fx_api.h" #include "fx_unicode.h" FX_CALLER_CHECKING_EXTERNS /**************************************************************************/ /* */ /* FUNCTION RELEASE */ /* */ /* _fxe_unicode_file_create PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* William E. Lamie, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This function checks for errors in the Unicode file create service. */ /* */ /* INPUT */ /* */ /* media_ptr Pointer to media */ /* source_unicode_name Pointer to source unicode name*/ /* source_unicode_length Unicode name length */ /* short_name Designated short name */ /* */ /* OUTPUT */ /* */ /* Completion Status */ /* */ /* CALLS */ /* */ /* _fx_unicode_file_create Actual Unicode file create */ /* service */ /* */ /* CALLED BY */ /* */ /* Application Code */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 09-30-2020 William E. Lamie Modified comment(s), */ /* resulting in version 6.1 */ /* */ /**************************************************************************/ UINT _fxe_unicode_file_create(FX_MEDIA *media_ptr, UCHAR *source_unicode_name, ULONG source_unicode_length, CHAR *short_name) { UINT status, i; /* Check for a NULL media or name pointers. */ if ((media_ptr == FX_NULL) || (source_unicode_name == FX_NULL) || (source_unicode_length == 0) || (short_name == FX_NULL)) { return(FX_PTR_ERROR); } /* Check for a valid caller. */ FX_CALLER_CHECKING_CODE /* Check unicode zero in source_unicode_name */ for (i = 0; i < (source_unicode_length << 1); i += 2) { if ((source_unicode_name[i] == 0) && (source_unicode_name[i + 1] == 0)) { return(FX_INVALID_NAME); } } /* Call actual Unicode file create service. */ status = _fx_unicode_file_create(media_ptr, source_unicode_name, source_unicode_length, short_name); /* Return status to the caller. */ return(status); }