PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Chamadas NamedPipe #239656

25/06/2004

0

Olá,
Estou executando uma chamada a um namedpipe esta funcionado blz.
O problema está qdo mando uma mensagem atraves do WriteFile ele está retornando true, porem a mensagem não executa o que deveria e qdo uso o debug (de outro aplicativo que gerencia todas chamdas) verifico que está ficando retornando como timeout.

Segue as linhas de codigo...
Alguem tem alguma sugestão?

Obrigada.

hPipe := CreateFile(
pchar(´\\..\pipe\nomepipe´), // pipe name
GENERIC_WRITE, // read and write access GENERIC_READ or
0, // no sharing
nil, // no security attributes
OPEN_EXISTING, // opens existing pipe
0, // default attributes
0); // no template file

FActive := not (hPipe= INVALID_HANDLE_VALUE);
if (GetLastError = ERROR_PIPE_BUSY) then
begin
if (not WaitNamedPipe(pchar(´\\..\pipe\nomepipe´), 20000) ) then
raise Exception.Create(´Named Pipe Server is Busy´)
end
else
if Not FActive then
RaiseLastOSError;

dwMode := PIPE_READMODE_MESSAGE;
if not SetNamedPipeHandleState(
hPipe, // pipe handle
dwMode, // new pipe mode
nil, // don´t set maximum bytes
nil) // don´t set maximum time
then
begin
DisconnectNamedPipe(hPipe);
raise Exception.Create(´Unable to change to Message Read Mode´);
end;

sConteudo := ´Mensagem p/ a pipe´;

fSuccess := WriteFile(hPipe,
sConteudo,
length(sConteudo),
dwWritten,
nil);


Hss

Hss

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar