Q&A

  • 초보 델파이 개발자입니다. 한수 갈켜주세요~~
type
  TLpcMessageData = array [0..59] of dword;
  TLpcMessagePrivate = packed record
    pid                 : dword;
    msgLen              : dword;
    counter             : dword;
    session             : dword;
    answerLen           : dword;
    data                : TLpcMessageData;
  end;

  TPLpcMessage = ^TLpcMessage;
  TLpcMessage = packed record
    next                : TPLpcMessage;
    name                : AnsiString;
    callback            : TIpcCallback;
    answer              : TIpcAnswer;
    prv                 : dword;
    actualMessageLength : word;
    totalMessageLength  : word;
    messageType         : word;
    dataInfoOffset      : word;
    clientProcessId     : dword;
    clientThreadId      : dword;
    messageId           : dword;
    sharedSectionSize   : dword;
  end;

위와 같이 스트럭쳐가 있구요
==========================================
var c1       : dword;
        pm1, pm2 : TPLpcMessage;
        ppm      : ^TPLpcMessage;
        mi       : ^TLpcSectionMapInfo;
        prv      : ^TLpcMessagePrivate;

        pm1 := pointer(LocalAlloc(LPTR, 512));
        if (NtReplyWaitReceivePort(iq.port, 0, nil, @pm1.actualMessageLength) = 0) and
           (pm1.messageType = LPC_CONNECTION_REQUEST) then
        begin
           ????????????????????
          pm1.prv := dword(@pm1.actualMessageLength) - dword(pm1) +    pm1.totalMessageLength - sizeOf(TLpcMessagePrivate); -->> 뭘 계산하겠다는건지 prv에 넣으려는 값이 뭘까요?
        
       dword(prv) := dword(pm1) + pm1.prv;
1  COMMENTS
  • Profile
    임대순 2009.03.24 01:00
    에러 없이 잘 넘어 가신다면 브레이크 포인트 찍고 보세요...그럼 값이 나옵니다.

    글구 이상태론 영문 해서 밖에는 안될꺼 같은데요..대략 문자 길이값을 넘겨준다...문장뒤에 길이값을 붙여준다..이정도.아닐까요..파일01같은...