Win32 pagefile.sys . , . . , ; .
CreateFileMapping - :
HANDLE CreateFileMapping(
HANDLE hFile, //
LPSECURITY_ATTRIBUTES lpAttributes, //
DWORD flProtect, //
DWORD dwMaximumSizeHigh, // DWORD
DWORD dwMaximumSizeLow, // DWORD
LPCTSTR lpName // -
);
3.1
-:
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, //
NULL, //
PAGE_READWRITE, // /
0, // .
1024, //
"myFileMapping"); //
lpD = (D*)MapViewOfFile(hMapFile, //
FILE_MAP_ALL_ACCESS, // /
0, // DWORD
0, // DWORD
1024); //
- .
- OpenFileMapping "myFileMapping", - , -. MapViewOfFile .
hMapFile = OpenFileMapping(
FILE_MAP_ALL_ACCESS, // /
FALSE, //
"myFileMapping"); // " "
lpD= (D*) MapViewOfFile(hMapFile, //
FILE_MAP_ALL_ACCESS, // /
0, // DWORD
0, // DWORD
1024); //
- .
. , , (mailslot server). , (mailslot clients), , . , .
, , , .
|
|
- .
HANDLE Mail;
LPSTR MailslotName = "\\\\.\\mailslot\\$Box_1$"; //
DWORD cbRead; //
char szBuf[512]; //
Mailslot, NameMailslot, Mail
Mail = CreateMailslot(NameMailslot, 0, MAILSLOT_WAIT_FOREVER, NULL);
,
if(Mail == INVALID_HANDLE_VALUE) return;
- 1 . :
Code = GetMailslotInfo(Mail, NULL, &Msg, &Number, NULL); //
// Mailslot , :
if(Number!= 0) ReadFile(Mail, szBuf, 512, &cbRead, NULL);
- .
- , . .
HANDLE Mail;
LPSTR ServerName = "\\\\.\\mailslot\\$Box_1$";
char szBuf[512];
//
Mail = CreateFile(ServerName, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
// ,
if(Mail == INVALID_HANDLE_VALUE)
{
sprintf(m_mess, " : %d \r\n", GetLastError());
SendMessage(hwndEdit, WM_SETTEXT, 0, (LPARAM)m_mess);
return;
}
//
WriteFile(Mail, szBuf, strlen(szBuf) + 1,&cbWritten, NULL);
- .
: .
( ) .
, .
. CreateNamedPipe, . .
. -, , . , . .
CreateNamedPipe . , , , .
|
|
HANDLE hNamedPipe[2]; // 2-
hNamedPipe[ j ]=CreateNamedPipe("\\\\.\\pipe\\my_pipe",
PIPE_ACCESS_DUPLEX, //
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES, //
512, 512, //
5000, //
NULL); //
fConnected[ j ] = ConnectNamedPipe(hNamedPipe[ j ], NULL); //false -
// ,
ReadFile(hNamedPipe[j],szBuf,512,&cbRead, NULL); //
- .
- :
hNamedPipe = CreateFile("\\\\.\\pipe\\my_pipe",
GENERIC_READ | GENERIC_WRITE, //
0, //
NULL, //
OPEN_EXISTING, //
0, //
NULL); //
:
WriteFile(hNamedPipe, szBuf, strlen(szBuf)+1, &cbWritten, NULL);
- .
Windows , "", Berkeley Software Distribution (BSD). Berkeley, , Windows. WinSock (Windows Socket) Windows API, . , .