Extracción de componentes de nombre de ruta de UNICODE_STRING dentro de un controlador WDK usando win32 y C

Estoy tratando de separar los componentes de un nombre de ruta UNICODE_STRING para crear el árbol de directorios desde la raíz del dispositivo hasta la hoja del archivo. Esto debe hacerse en un controlador WDK.

Necesito construir la estructura de directorios pieza por pieza usandoZwCreateFile() ya que solo puede crear el directorio final o la hoja en lugar de la ruta completa en una sola llamada.

Disculpas por una pregunta tan simple para ustedes, ingenieros de C, pero tengo problemas para entenderlo y utilizarlo en un controlador.

Mi enfoque actual es convertir unUNICODE_STRING achar y usa elstrtok_s() función para dividir el nombre de ruta en sus directorios y archivos componentes.

Estoy buscando usar

char string1[] =
    "\\Device\\HarddiskVolume";

char seps[] = "\\";
char *token1 = NULL;

char *next_token1 = NULL;

token1 = strtok_s(string1, seps, &next_token1);

Pero necesito convertir unUNICODE_STRING achar cuerda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta