2017-03-07 1 views
0

내 프로그램은 메일 슬롯을 만듭니다. 수신기 파일 작성 - GENERIC_WIRTE | GENERIC_READ/FILE_SHARE_WIRTE | FILE_SHARE_READ/OPEN_EXISTING - 및 Readfile (handle, buf (struct), 1024, len, NULL) 오류를 반환합니다. ERROR_INVALID_PARAMETER. 매개 변수가 어떨까요?Windows Readfile 반환 ERROR_INVALID_PARAMETER 87

소스

프로그램 : 성공

SECURITY_DESCRIPTOR sd; 
InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION); 
SetSecurityDescriptorDacl(&sd, true, NULL, false); 

SECURITY_ATTRIBUTES sa; 
sa.lpSecurityDescriptor=&sd; 
sa.bInheritHandle=true; 

수신기 :

CreateFile(msg_key_ 
, GENERIC_WRITE | GENERIC_READ 
, FILE_SHARE_WRITE | FILE_SHARE_READ 
, 0 
, OPEN_EXISTING 
, FILE_FLAG_OVERLAPPED 
, 0 
); 

에서 ReadFile (msg_id_, (LPVOID) MSG, 1024, & byteLen, NULL);

당신은 주변의 메일 슬롯을 잘못된 방법을 사용하려는

+0

더 많은 코드를 게시하십시오. CreateFile의 반환 값을 확인하고 있습니까? – Anders

+0

프로그램 코드 : createmailslot with MAILSLOT_WAIT_FOREVER 및 sa. 이것은 성공이다. 반환 값은 INVALID_HANDLE_VALUE이 아닙니다. – CancerYoon

답변

0

... 반환 ERROR_INVALID_PARAMETER입니다.

메일 슬롯 서버 핸들, CreateMailslot를 호출하여 생성, 메시지를 수신합니다.

메일 슬롯 클라이언트 핸들, CreateFile를 호출하여 생성, 메시지를 보내는 것입니다.

클라이언트 핸들로 ReadFile을 호출 할 수 없습니다. 메일 슬롯은 양방향성이 아닙니다.

+0

감사합니다 !! 나는 그것을 해결했다. – CancerYoon