lPipeName недопустимо, вам нужно правильно экранировать символы '\', как в примере с msdn (подробности о различных кодах ошибок см. здесь ).
Я бы также использовал определения, а не шестнадцатеричные числа, труба, которую я использую, объявляется с:
hPipe = CreateNamedPipe( lpszPipename, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES, BUFSIZE, BUFSIZE, 0, NULL);
Какой ИМО является более читабельным.
Фрагмент кода MSDN предназначен для клиентской части. На стороне сервера канал создается с помощью CreateNamedPipe, а сторона клиента подключается к уже созданному каналу с помощью CreateFile.
EDIT:
Первые два абзаца раздела замечаний справочной страницы CreatenamedPipe описывают, почему вам может быть отказано в доступе. Предполагая, что это единственный экземпляр этого именованного канала, который вы создаете, проблема может быть в ваших разрешениях. Вы на Vista или Windows 7? Если это так, убедитесь, что вы работаете от имени администратора. В противном случае вам придется играть с вашими настройками, пока вы не сделаете это правильно.
PS: Вы вызываете DisconnectNamedPipe и CloseHandle, когда закончите с конвейером? Я бы назвал их, даже если труба не была создана правильно.