WINE and Windows called channels

Here is my problem: I have a third-party Win32 application with independent source code that acts as a server for other programs through named pipes, that is, expects its clients to do something like this:

HANDLE h = CreateFile("\\\\.\\pipe\\$pipe_name$", GENERIC_READ | GENERIC_WRITE, etc...);
// ...
TransactNamedPipe(h, buf, etc...);
// ...
CloseHandle(h);

This application works fine in WINE, except that I cannot communicate with it. So here is my question:

What exactly does WINE do when it is asked to open the handset? Does this, say, map it to some FIFO file in ~ / .wine / or anywhere? Is there any way to communicate with such a program from a Linux application? Google knows nothing about this.

Thank.

+5
source share
2 answers

WINE. WINE. , CreateNamedPipe :

    SERVER_START_REQ( open_file_object )
    {
        req->access     = access;
        req->attributes = attr->Attributes;
        req->rootdir    = wine_server_obj_handle( attr->RootDirectory );
        req->sharing    = sharing;
        req->options    = options;
        wine_server_add_data( req, attr->ObjectName->Buffer, attr->ObjectName->Length );
        io->u.Status = wine_server_call( req );
        *handle = wine_server_ptr_handle( reply->handle );
    }

. , WINE , fd . , fd - , WINE, .

+2

All Articles