Недокументированные функции NTDLL

1 марта 2001



NtCreateNamedPipeFile (ZwCreateNamedPipeFile)

NTSYSAPI 
NTSTATUS
NTAPI

NtCreateNamedPipeFile(

OUT PHANDLE NamedPipeFileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN BOOLEAN WriteModeMessage, IN BOOLEAN ReadModeMessage, IN BOOLEAN NonBlocking, IN ULONG MaxInstances, IN ULONG InBufferSize, IN ULONG OutBufferSize, IN PLARGE_INTEGER DefaultTimeOut );




Функция NtCreateNamedPipeFile создаёт именованный канал. Именованные каналы это специальный тип файлов, поэтому вся функциональность предоставляется функциями работы с файлами типа NtReadFile, NtWriteFile и т. п.
Именованные каналы часто используются в NT системе, например как хэндлы stdin и stdout.


  • NamedPipeFileHandle
  •     Результат выполнения - указатель на HANDLE именованного канала.
  • DesiredAccess
  •     Права доступа на хэндл объекта. Комбинация одного из перечисленного:.
  • ObjectAttributes
  •     Указатель на структуру OBJECT_ATTRIBUTES, содержащую имя именованного канала. Имя должно начинаться со строки "\??\PIPE\", которая является символьной ссылкой на объект устройства NamedPipe.
  • IoStatusBlock
  •     Результат ввода-вывода
  • ShareAccess
  •     Комбинация одного из перечисленного:
  • CreateDisposition
  •     Используйте FILE_CREATE, FILE_OPEN или FILE_OPEN_IF.
  • CreateOptions
  •     См. описание NtCreateFile где можно посмотреть допустимые флаги для создания.
  • WriteModeMessage
  •     Если установлено, то запись в именованный канал происходит в режиме сообщений. Если нет, запись происходит в байтовом режиме.
  • ReadModeMessage
  •     Та же функциональность, что и у параметра WriteModeMessage, но для чтения данных.
  • NonBlocking
  •     Если установлено, все операции с именованным каналом асинхронны.
  • MaxInstances
  •     Максимальное число открытых хэндлов на именованный канал, или константа FILE_PIPE_UNLIMITED_INSTANCES.
  • InBufferSize
  •     Размер буфера ввода в байтах.
  • OutBufferSize
  •     Размер буфера вывода в байтах.
  • DefaultTimeOut
  •     Указатель на LARGE_INTEGER, содержащее таймаут именованного канала, в единицах измерения, равным 100 нс. Отрицательные значения означают относительное время.


    Документировал:
    Томаш Новак
    Reactos



    Зависимости:
    Библиотека: ntdll.lib


    См. также:
    FILE_INFORMATION_CLASS
    FILE_PIPE_INFORMATION
    FILE_PIPE_LOCAL_INFORMATION
    FILE_PIPE_REMOTE_INFORMATION
    NtFsControlFile
    NtQueryInformationFile
    NtReadFile
    NtSetInformationFile
    NtWriteFile