22 #define MINIRDR__NAME "Value is ignored, only fact of definition" 32 #if defined(__REACTOS__) && (NTDDI_VERSION < NTDDI_WIN7) 34 ULONG *utf8_bytes_written,
37 ULONG *uni_bytes_written,
53 #ifdef INCLUDE_TIMESTAMPS 85 #ifdef INCLUDE_TIMESTAMPS 123 for(
j = 0,
k = 0;
j <
len;
j++,
k++) {
126 if (((
k+1) % 30 == 0 &&
k > 0))
137 DbgP(
"IRP_MJ_FILE_SYSTEM_CONTROL\n");
140 DbgP(
"IRP_MJ_DEVICE_CONTROL\n");
143 DbgP(
"IRP_MJ_INTERNAL_DEVICE_CONTROL\n");
146 DbgP(
"UNKNOWN MJ IRP %d\n",
op);
155 DbgP(
"IOCTL_NFS41_INVALCACHE\n");
158 DbgP(
"IOCTL_NFS41_UPCALL\n");
161 DbgP(
"IOCTL_NFS41_DOWNCALL\n");
164 DbgP(
"IOCTL_NFS41_ADDCONN\n");
167 DbgP(
"IOCTL_NFS41_DELCONN\n");
170 DbgP(
"IOCTL_NFS41_GETSTATE\n");
173 DbgP(
"IOCTL_NFS41_START\n");
176 DbgP(
"IOCTL_NFS41_STOP\n");
179 DbgP(
"UNKNOWN FS IOCTL %d\n",
op);
187 DbgP(
"NFS41_START_DRIVER_STARTABLE\n");
190 DbgP(
"NFS41_START_DRIVER_STOPPED\n");
193 DbgP(
"NFS41_START_DRIVER_START_IN_PROGRESS\n");
196 DbgP(
"NFS41_START_DRIVER_STARTED\n");
199 DbgP(
"UNKNOWN DRIVER STATE %d\n",
state);
207 DbgP(
"BASIC_INFO: Create=%lx Access=%lx Write=%lx Change=%lx Attr=%x\n",
208 info->CreationTime.QuadPart,
info->LastAccessTime.QuadPart,
209 info->LastWriteTime.QuadPart,
info->ChangeTime.QuadPart,
210 info->FileAttributes);
215 DbgP(
"STD_INFO: Type=%s #Links=%d Alloc=%lx EOF=%lx Delete=%d\n",
216 info->Directory?
"DIR":
"FILE",
info->NumberOfLinks,
217 info->AllocationSize.QuadPart,
info->EndOfFile.QuadPart,
218 info->DeletePending);
224 DbgP(
"FULL_EA_INFO: NextOffset=%d Flags=%x EaNameLength=%d " 225 "ExValueLength=%x EaName=%s\n",
info->NextEntryOffset,
info->Flags,
227 if (
info->EaValueLength)
229 (
unsigned char *)
info->EaName +
info->EaNameLength + 1,
230 info->EaValueLength);
235 if (!on || !
info)
return;
236 DbgP(
"GET_EA_INFO: NextOffset=%d EaNameLength=%d EaName=%s\n",
237 info->NextEntryOffset,
info->EaNameLength,
info->EaName);
243 DbgP(
"PMRX_SRV_CALL %p\n",
p);
245 DbgP(
"\tNodeReferenceCount %ld\n",
p->NodeReferenceCount);
254 DbgP(
"*****************\n");
261 DbgP(
"PMRX_NET_ROOT %p\n",
p);
263 DbgP(
"\tNodeReferenceCount %ld\n",
p->NodeReferenceCount);
264 DbgP(
"\tpSrvCall %p\n",
p->pSrvCall);
268 DbgP(
"\tNumberOfFcbs %ld\n",
p->NumberOfFcbs);
269 DbgP(
"\tNumberofSrvOpens %ld\n",
p->NumberOfSrvOpens);
275 DbgP(
"*****************\n");
282 DbgP(
"PMRX_V_NET_ROOT %p\n",
p);
284 DbgP(
"\tNodeReferenceCount %ld\n",
p->NodeReferenceCount);
285 DbgP(
"\tpNetRoot %p\n",
p->pNetRoot);
289 DbgP(
"\tNumberofOpens %ld\n",
p->NumberOfOpens);
290 DbgP(
"\tNumberofFobxs %ld\n",
p->NumberOfFobxs);
298 DbgP(
"*****************\n");
305 DbgP(
"FsContext %p FsContext2 %p\n",
file->FsContext,
file->FsContext2);
306 DbgP(
"DeletePending %d ReadAccess %d WriteAccess %d DeleteAccess %d\n",
307 file->DeletePending,
file->WriteAccess,
file->DeleteAccess);
308 DbgP(
"SharedRead %d SharedWrite %d SharedDelete %d Flags %x\n",
315 if (
c->pFcb &&
c->pRelevantSrvOpen)
316 DbgP(
"OpenCount %d FCB %p SRV %p FOBX %p VNET %p NET %p\n",
317 c->pFcb->OpenCount,
c->pFcb,
c->pRelevantSrvOpen,
c->pFobx,
318 c->pRelevantSrvOpen->pVNetRoot,
c->pFcb->pNetRoot);
324 DbgP(
"PMRX_FCB %p OpenCount %d\n",
p,
p->OpenCount);
326 DbgP(
"\tNodeReferenceCount %ld\n",
p->NodeReferenceCount);
327 DbgP(
"\tpNetRoot %p\n",
p->pNetRoot);
333 DbgP(
"\tOpenCount %ld\n",
p->OpenCount);
343 DbgP(
"*****************\n");
350 DbgP(
"PMRX_SRV_OPEN %p\n",
p);
352 DbgP(
"\tNodeReferenceCount %ld\n",
p->NodeReferenceCount);
353 DbgP(
"\tpFcb %p\n",
p->pFcb);
354 DbgP(
"\tpVNetRoot %p\n",
p->pVNetRoot);
360 DbgP(
"\tOpenCount %ld\n",
p->OpenCount);
368 DbgP(
"*****************\n");
375 DbgP(
"PMRX_FOBX %p\n",
p);
377 DbgP(
"\tNodeReferenceCount %ld\n",
p->NodeReferenceCount);
378 DbgP(
"\tpSrvOpen %p\n",
p->pSrvOpen);
379 DbgP(
"\tAssociatedFileObject %p\n",
p->AssociatedFileObject);
383 DbgP(
"*****************\n");
391 DbgP(
"IRP FLAGS: 0x%x %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
413 DbgP(
"IRPSP FLAGS 0x%x %s %s %s %s\n", irps->
Flags,
422 if (
params.FileAttributes)
423 DbgP(
"File attributes %x: %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
441 DbgP(
"Create Dispositions: FILE_SUPERSEDE\n");
443 DbgP(
"Create Dispositions: FILE_CREATE\n");
445 DbgP(
"Create Dispositions: FILE_OPEN\n");
447 DbgP(
"Create Dispositions: FILE_OPEN_IF\n");
449 DbgP(
"Create Dispositions: FILE_OVERWRITE\n");
451 DbgP(
"Create Dispositions: FILE_OVERWRITE_IF\n");
453 DbgP(
"Create Attributes: 0x%x %s %s %s %s %s %s %s %s %s %s %s %s %s %s " 454 "%s %s\n",
params.CreateOptions,
472 DbgP(
"Share Access: %s %s %s\n",
477 DbgP(
"Desired Access: 0x%x %s %s %s %s %s %s %s %s %s %s %s\n",
502 return (
unsigned char *)
"FileBothDirectoryInformation";
504 return (
unsigned char *)
"FileDirectoryInformation";
506 return (
unsigned char *)
"FileFullDirectoryInformation";
508 return (
unsigned char *)
"FileIdBothDirectoryInformation";
510 return (
unsigned char *)
"FileIdFullDirectoryInformation";
512 return (
unsigned char *)
"FileNamesInformation";
514 return (
unsigned char *)
"FileObjectIdInformation";
516 return (
unsigned char *)
"FileQuotaInformation";
518 return (
unsigned char *)
"FileReparsePointInformation";
520 return (
unsigned char *)
"FileAllInformation";
522 return (
unsigned char *)
"FileAttributeTagInformation";
524 return (
unsigned char *)
"FileBasicInformation";
526 return (
unsigned char *)
"FileCompressionInformation";
528 return (
unsigned char *)
"FileEaInformation";
530 return (
unsigned char *)
"FileInternalInformation";
532 return (
unsigned char *)
"FileNameInformation";
534 return (
unsigned char *)
"FileNetworkOpenInformation";
536 return (
unsigned char *)
"FilePositionInformation";
538 return (
unsigned char *)
"FileStandardInformation";
540 return (
unsigned char *)
"FileStreamInformation";
542 return (
unsigned char *)
"FileAllocationInformation";
544 return (
unsigned char *)
"FileDispositionInformation";
546 return (
unsigned char *)
"FileEndOfFileInformation";
548 return (
unsigned char *)
"FileLinkInformation";
550 return (
unsigned char *)
"FileRenameInformation";
552 return (
unsigned char *)
"FileValidDataLengthInformation";
554 return (
unsigned char *)
"UNKNOWN";
562 return (
unsigned char *)
"FileFsAttributeInformation";
564 return (
unsigned char *)
"FileFsControlInformation";
566 return (
unsigned char *)
"FileFsDeviceInformation";
568 return (
unsigned char *)
"FileFsDriverPathInformation";
570 return (
unsigned char *)
"FileFsFullSizeInformation";
572 return (
unsigned char *)
"FileFsObjectIdInformation";
574 return (
unsigned char *)
"FileFsSizeInformation";
576 return (
unsigned char *)
"FileFsVolumeInformation";
578 return (
unsigned char *)
"UNKNOWN";
587 DbgP(
"enable_caching: DISABLE_CACHING %wZ\n",
name);
590 DbgP(
"enable_caching: ENABLE_READ_CACHING %wZ\n",
name);
593 DbgP(
"enable_caching: ENABLE_WRITE_CACHING %wZ\n",
name);
596 DbgP(
"enable_caching: ENABLE_READWRITE_CACHING %wZ\n",
name);
622 default:
return "UNKNOWN";
629 DbgP(
"Security query: %s %s %s\n",
641 DbgP(
"[ERROR] nfs41_Create: STATUS_ACCESS_DENIED\n");
644 DbgP(
"[ERROR] nfs41_Create: STATUS_NETWORK_ACCESS_DENIED\n");
647 DbgP(
"[ERROR] nfs41_Create: STATUS_OBJECT_NAME_INVALID\n");
650 DbgP(
"[ERROR] nfs41_Create: STATUS_OBJECT_NAME_COLLISION\n");
653 DbgP(
"[ERROR] nfs41_Create: STATUS_FILE_INVALID\n");
656 DbgP(
"[ERROR] nfs41_Create: STATUS_OBJECT_NAME_NOT_FOUND\n");
659 DbgP(
"[ERROR] nfs41_Create: STATUS_NAME_TOO_LONG\n");
662 DbgP(
"[ERROR] nfs41_Create: STATUS_OBJECT_PATH_NOT_FOUND\n");
665 DbgP(
"[ERROR] nfs41_Create: STATUS_BAD_NETWORK_PATH\n");
668 DbgP(
"[ERROR] nfs41_Create: STATUS_SHARING_VIOLATION\n");
671 DbgP(
"[ERROR] nfs41_Create: STATUS_REPARSE\n");
674 DbgP(
"[ERROR] nfs41_Create: STATUS_TOO_MANY_LINKS\n");
677 DbgP(
"[ERROR] nfs41_Create: STATUS_FILE_IS_A_DIRECTORY\n");
680 DbgP(
"[ERROR] nfs41_Create: STATUS_NOT_A_DIRECTORY\n");
683 DbgP(
"[ERROR] nfs41_Create: STATUS_INSUFFICIENT_RESOURCES\n");
695 DbgP(
"%s Got a wakeup call, finishing %s entry=%p xid=%lld\n",
698 DbgP(
"%s Got a wakeup call\n", prefix);
701 DbgP(
"%s KeWaitForSingleObject returned STATUS_USER_APC\n", prefix);
704 DbgP(
"%s KeWaitForSingleObject returned STATUS_ALERTED\n", prefix);
707 DbgP(
"%s KeWaitForSingleObject returned %d\n", prefix,
status);
720 #define TEMP_BUFFER_SIZE 1024 740 "RtlStringCbVPrintfA failed %x \n",
status);
#define KeQuerySystemTime(t)
#define STATUS_OBJECT_NAME_COLLISION
#define FILE_SEQUENTIAL_ONLY
void print_driver_state(int state)
#define SL_CASE_SENSITIVE
#define FILE_ATTRIBUTE_TEMPORARY
#define FILE_ATTRIBUTE_SPARSE_FILE
#define IRP_CLOSE_OPERATION
#define SL_OPEN_PAGING_FILE
#define FILE_ATTRIBUTE_SYSTEM
#define FILE_DIRECTORY_FILE
#define FileFsFullSizeInformation
VOID print_v_net_root(int on, IN PMRX_V_NET_ROOT p)
void print_basic_info(int on, PFILE_BASIC_INFORMATION info)
unsigned char * print_file_information_class(int InfoClass)
void print_std_info(int on, PFILE_STANDARD_INFORMATION info)
VOID print_fobx(int on, IN PMRX_FOBX p)
NTSYSAPI ULONG __cdecl DbgPrintEx(_In_ ULONG ComponentId, _In_ ULONG Level, _In_z_ _Printf_format_string_ PCSTR Format,...)
static DOUBLE local_time(DOUBLE time, DateInstance *date)
#define IOCTL_NFS41_DELCONN
NTSTATUS WINAPI RtlUTF8ToUnicodeN(PWSTR uni_dest, ULONG uni_bytes_max, PULONG uni_bytes_written, PCCH utf8_src, ULONG utf8_bytes)
#define GROUP_SECURITY_INFORMATION
#define STATUS_FILE_INVALID
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
#define SL_FORCE_ACCESS_CHECK
#define FILE_RESERVE_OPFILTER
void print_ioctl(int on, int op)
#define FILE_WRITE_ATTRIBUTES
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define FILE_OPEN_BY_FILE_ID
#define IOCTL_NFS41_INVALCACHE
#define ERROR_BAD_FILE_TYPE
GLenum GLuint GLenum GLsizei const GLchar * buf
VOID print_net_root(int on, IN PMRX_NET_ROOT p)
#define FILE_NO_INTERMEDIATE_BUFFERING
#define FILE_SYNCHRONOUS_IO_ALERT
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define STATUS_SHARING_VIOLATION
NTSTRSAFEAPI RtlStringCbVPrintfA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCSTR pszFormat, _In_ va_list argList)
void print_open_error(int on, int status)
GLenum const GLfloat * params
DWORD SECURITY_INFORMATION
#define FILE_NO_EA_KNOWLEDGE
#define IRP_ASSOCIATED_IRP
#define STATUS_BAD_NETWORK_PATH
#define FILE_WRITE_THROUGH
#define FILE_OVERWRITE_IF
const char * opcode2string(int opcode)
void print_get_ea(int on, PFILE_GET_EA_INFORMATION info)
#define FILE_ATTRIBUTE_REPARSE_POINT
#define IOCTL_NFS41_START
#define STATUS_NAME_TOO_LONG
#define ExSystemTimeToLocalTime(SysTime, LocTime)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define FILE_ATTRIBUTE_DIRECTORY
BOOLEAN RtlTimeToTimeFields(IN PLARGE_INTEGER Time, IN PTIME_FIELDS TimeFields)
#define FILE_DELETE_ON_CLOSE
#define FILE_ATTRIBUTE_DEVICE
VOID print_srv_call(int on, IN PMRX_SRV_CALL p)
#define FILE_LIST_DIRECTORY
PEPROCESS NTAPI IoGetCurrentProcess(VOID)
#define FileFsObjectIdInformation
void print_fo_all(int on, PRX_CONTEXT c)
#define NT_SUCCESS(StatCode)
#define IRP_MJ_FILE_SYSTEM_CONTROL
void print_ea_info(int on, PFILE_FULL_EA_INFORMATION info)
#define IRP_READ_OPERATION
#define FILE_ATTRIBUTE_READONLY
#define SACL_SECURITY_INFORMATION
#define STATUS_OBJECT_PATH_NOT_FOUND
#define STATUS_ACCESS_DENIED
#define IRP_MJ_INTERNAL_DEVICE_CONTROL
#define FILE_ATTRIBUTE_COMPRESSED
#define IOCTL_NFS41_GETSTATE
unsigned char * print_fs_information_class(int InfoClass)
VOID print_irp_flags(int on, PIRP irp)
#define FILE_READ_ATTRIBUTES
#define FILE_ATTRIBUTE_ARCHIVE
#define FILE_ATTRIBUTE_NORMAL
#define FILE_SHARE_DELETE
void print_nt_create_params(int on, NT_CREATE_PARAMETERS params)
#define ERROR_TOO_MANY_LINKS
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
void print_acl_args(SECURITY_INFORMATION info)
#define FILE_NON_DIRECTORY_FILE
#define STANDARD_RIGHTS_READ
void print_file_object(int on, PFILE_OBJECT file)
#define IOCTL_NFS41_ADDCONN
#define IRP_MOUNT_COMPLETION
void print_caching_level(int on, ULONG flag, PUNICODE_STRING name)
ULONG __cdecl DbgP(IN PCCH fmt,...)
#define FILE_ATTRIBUTE_VIRTUAL
#define FileFsDriverPathInformation
#define FILE_ATTRIBUTE_ENCRYPTED
#define SL_OPEN_TARGET_DIRECTORY
#define IRP_INPUT_OPERATION
#define STATUS_OBJECT_NAME_NOT_FOUND
#define DPFLTR_ERROR_LEVEL
void print_wait_status(int on, const char *prefix, NTSTATUS status, const char *opcode, PVOID entry, LONGLONG xid)
NTSTATUS NTAPI RtlUnicodeToUTF8N(CHAR *utf8_dest, ULONG utf8_bytes_max, ULONG *utf8_bytes_written, const WCHAR *uni_src, ULONG uni_bytes)
#define FILE_OPEN_FOR_BACKUP_INTENT
#define STATUS_OBJECT_NAME_INVALID
#define FILE_RANDOM_ACCESS
#define FILE_ATTRIBUTE_HIDDEN
#define OWNER_SECURITY_INFORMATION
HANDLE NTAPI PsGetCurrentProcessId(VOID)
#define FileStandardInformation
void print_fs_ioctl(int on, int op)
#define IRP_DEALLOCATE_BUFFER
#define FILE_SYNCHRONOUS_IO_NONALERT
void print_hexbuf(int on, unsigned char *title, unsigned char *buf, int len)
#define IOCTL_NFS41_WRITE
#define STATUS_NETWORK_ACCESS_DENIED
#define IRP_SYNCHRONOUS_API
#define IRP_CREATE_OPERATION
void print_irps_flags(int on, PIO_STACK_LOCATION irps)
#define FILE_CREATE_TREE_CONNECTION
#define IRP_DEFER_IO_COMPLETION
#define IRP_WRITE_OPERATION
VOID print_srv_open(int on, IN PMRX_SRV_OPEN p)
ULONG __cdecl print_error(IN PCCH fmt,...)
ULONG dprintk(IN PCHAR func, IN ULONG flags, IN PCHAR format,...)
static SERVICE_STATUS status
#define FILE_OPEN_REPARSE_POINT
#define FILE_COMPLETE_IF_OPLOCKED
#define DACL_SECURITY_INFORMATION
#define IRP_SYNCHRONOUS_PAGING_IO
#define IRP_MJ_DEVICE_CONTROL
VOID print_fcb(int on, IN PMRX_FCB p)