Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: pipe.h
//
//--------------------------------------------------------------------------
#ifndef __PIPE_HXX
#define __PIPE_HXX
enum receive_states { start, copy_pipe_elem, return_partial_pipe_elem, // also save pipe elem
return_partial_count, // also save count
read_partial_count, // also a start state
read_partial_pipe_elem //also a start state
} ;
typedef struct { void *Buffer ; int BufferLength ; receive_states CurrentState ; char PAPI *CurPointer ; // current pointer in the buffer
int BytesRemaining ; // bytes remaining in current buffer
int ElementsRemaining ; // elements remaining in current pipe chunk
DWORD PartialCount ; int PartialCountSize ; int PartialPipeElementSize ; int EndOfPipe ; int PipeElementSize ; void PAPI *PartialPipeElement ; void PAPI *AllocatedBuffer ; int BufferSize ; int SendBufferOffset ; void PAPI *PreviousBuffer ; int PreviousBufferSize ; HANDLE BindingHandle; } PIPE_STATE ;
//
// N.B. this structure is the same as MIDL_ASYNC_STUB_STATE
//
typedef struct async_stub_state { void *CallHandle ; RPC_STATUS (*CompletionRoutine) ( PRPC_ASYNC_STATE pAsync, void *Reply) ; int Length ; void *UserData ; int State ; void *Buffer ; int BufferLength ; unsigned long Flags ; PIPE_STATE PipeState ; BOOL (*ReceiveFunction) ( PRPC_ASYNC_STATE pAsync, PRPC_MESSAGE Message) ; } RPC_ASYNC_STUB_STATE ;
void I_RpcReadPipeElementsFromBuffer ( PIPE_STATE PAPI *state, char PAPI *TargetBuffer, int TargetBufferSize, int PAPI *NumCopied ) ;
//states
enum { SEND_COMPLETE, SEND_INCOMPLETE } ;
RPC_STATUS RPC_ENTRY MyRpcCompleteAsyncCall ( IN PRPC_ASYNC_STATE pAsync, IN void *Reply ); #define STUB(_x_) ((RPC_ASYNC_STUB_STATE *) (_x_->StubInfo))
#endif
|