return (*g_NTDLL->NtOpenFile)(phandle, flags, &open_struct, &retx, 7, 0);
return (*g_NTDLL->NtOpenFile)(phandle, access, &open_struct, ioStatusBlock, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, 0);
static DWORD NtOpenObject(OBJECT_TYPE type, HANDLE* phandle, DWORD flags, LPCWSTR path/*, BOOL xflag=FALSE*/){	UnicodeString ustr(path);	OpenStruct open_struct = {sizeof(OpenStruct), 0x00, &ustr, 0x40};	if (type==SYMBOLICLINK_OBJECT || type==DIRECTORY_OBJECT)		flags |= 1;	//@@ ENUMERATE	/* if (xflag)		flags |= 0x80000000; */	DWORD retx;	if (type>=DIRECTORY_OBJECT && type<=IOCOMPLETITION_OBJECT)		return g_NTDLL->_ObjectOpenFunctions[type](phandle, flags|0x20000, &open_struct);	else if (type == FILE_OBJECT)		return (*g_NTDLL->NtOpenFile)(phandle, flags, &open_struct, &retx, 7, 0);	else		return ERROR_INVALID_FUNCTION;}