/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS TDI interface * FILE: handle.c * PURPOSE: TDI transport handle management */ #include "precomp.h" const PWCHAR TcpFileName = L"\\Device\\Tcp"; NTSTATUS openTcpFile(PHANDLE tcpFile, ACCESS_MASK DesiredAccess) { UNICODE_STRING fileName; OBJECT_ATTRIBUTES objectAttributes; IO_STATUS_BLOCK ioStatusBlock; NTSTATUS status; RtlInitUnicodeString( &fileName, TcpFileName ); InitializeObjectAttributes( &objectAttributes, &fileName, OBJ_CASE_INSENSITIVE, NULL, NULL ); status = NtOpenFile( tcpFile, DesiredAccess | SYNCHRONIZE, &objectAttributes, &ioStatusBlock, FILE_SHARE_READ | FILE_SHARE_WRITE, FILE_SYNCHRONOUS_IO_NONALERT); /* String does not need to be freed: it points to the constant * string we provided */ if (!NT_SUCCESS(status)) *tcpFile = INVALID_HANDLE_VALUE; return status; } VOID closeTcpFile( HANDLE h ) { ASSERT(h != INVALID_HANDLE_VALUE); NtClose( h ); }