Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
55e10e4a
Commit
55e10e4a
authored
Aug 11, 2014
by
Adam Martinson
Committed by
Alexandre Julliard
Aug 20, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Implement FILE_PIPE_INFORMATION for NtQueryInformationFile.
parent
2c9c968a
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
2 deletions
+31
-2
file.c
dlls/ntdll/file.c
+20
-2
winternl.h
include/winternl.h
+11
-0
No files found.
dlls/ntdll/file.c
View file @
55e10e4a
...
...
@@ -1981,7 +1981,7 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE hFile, PIO_STATUS_BLOCK io,
sizeof
(
FILE_END_OF_FILE_INFORMATION
),
/* FileEndOfFileInformation */
0
,
/* FileAlternateNameInformation */
sizeof
(
FILE_STREAM_INFORMATION
)
-
sizeof
(
WCHAR
),
/* FileStreamInformation */
0
,
/* FilePipeInformation */
sizeof
(
FILE_PIPE_INFORMATION
),
/* FilePipeInformation */
sizeof
(
FILE_PIPE_LOCAL_INFORMATION
),
/* FilePipeLocalInformation */
0
,
/* FilePipeRemoteInformation */
sizeof
(
FILE_MAILSLOT_QUERY_INFORMATION
),
/* FileMailslotQueryInformation */
...
...
@@ -2032,7 +2032,7 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE hFile, PIO_STATUS_BLOCK io,
if
(
len
<
info_sizes
[
class
])
return
io
->
u
.
Status
=
STATUS_INFO_LENGTH_MISMATCH
;
if
(
class
!=
FilePipeLocalInformation
)
if
(
class
!=
FilePipe
Information
&&
class
!=
FilePipe
LocalInformation
)
{
if
((
io
->
u
.
Status
=
server_get_unix_fd
(
hFile
,
0
,
&
fd
,
&
needs_close
,
NULL
,
NULL
)))
return
io
->
u
.
Status
;
...
...
@@ -2146,6 +2146,24 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE hFile, PIO_STATUS_BLOCK io,
}
}
break
;
case
FilePipeInformation
:
{
FILE_PIPE_INFORMATION
*
pi
=
ptr
;
SERVER_START_REQ
(
get_named_pipe_info
)
{
req
->
handle
=
wine_server_obj_handle
(
hFile
);
if
(
!
(
io
->
u
.
Status
=
wine_server_call
(
req
)))
{
pi
->
ReadMode
=
(
reply
->
flags
&
NAMED_PIPE_MESSAGE_STREAM_READ
)
?
FILE_PIPE_MESSAGE_MODE
:
FILE_PIPE_BYTE_STREAM_MODE
;
pi
->
CompletionMode
=
(
reply
->
flags
&
NAMED_PIPE_NONBLOCKING_MODE
)
?
FILE_PIPE_COMPLETE_OPERATION
:
FILE_PIPE_QUEUE_OPERATION
;
}
}
SERVER_END_REQ
;
}
break
;
case
FilePipeLocalInformation
:
{
FILE_PIPE_LOCAL_INFORMATION
*
pli
=
ptr
;
...
...
include/winternl.h
View file @
55e10e4a
...
...
@@ -623,6 +623,11 @@ typedef struct _FILE_MAILSLOT_SET_INFORMATION {
LARGE_INTEGER
ReadTimeout
;
}
FILE_MAILSLOT_SET_INFORMATION
,
*
PFILE_MAILSLOT_SET_INFORMATION
;
typedef
struct
_FILE_PIPE_INFORMATION
{
ULONG
ReadMode
;
ULONG
CompletionMode
;
}
FILE_PIPE_INFORMATION
,
*
PFILE_PIPE_INFORMATION
;
typedef
struct
_FILE_PIPE_LOCAL_INFORMATION
{
ULONG
NamedPipeType
;
ULONG
NamedPipeConfiguration
;
...
...
@@ -1602,6 +1607,12 @@ typedef struct _RTL_HANDLE_TABLE
/* options for pipe's type */
#define FILE_PIPE_TYPE_MESSAGE 0x00000001
#define FILE_PIPE_TYPE_BYTE 0x00000000
/* options for pipe's message mode */
#define FILE_PIPE_MESSAGE_MODE 0x00000001
#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
/* options for pipe's blocking mode */
#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
#define FILE_PIPE_QUEUE_OPERATION 0x00000000
/* and client / server end */
#define FILE_PIPE_SERVER_END 0x00000001
#define FILE_PIPE_CLIENT_END 0x00000000
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment