view loader/wine/ntdef.h @ 10411:80dbdfe86c5b

I attach a fix to the problem described in: http://mplayerhq.hu/pipermail/mplayer-dev-eng/2003-July/019494.html The bug came out to be that sws_rgb2rgb_init was called, but only after the critical step in which ws.c copied the relevant function pointer to wsConvFunc. Someone deserves 1000l for this. Maybe we want to preinit the function pointers so that they will print something like "Call to an rgb2rgb function without calling to sws_rgb2rgb_init first. Please report." - this bug wasn't discovered since the function pointers were NULL, and the rest of the cde uses "wsConvFunc" only if it is not NULL. Raindel Shachar <raindel@techunix.technion.ac.il>
author arpi
date Sat, 12 Jul 2003 17:19:18 +0000
parents 3b5f5d1c5041
children 93b87066f9da
line wrap: on
line source

#ifndef __WINE_NTDEF_H
#define __WINE_NTDEF_H

#include "basetsd.h"
#include "windef.h"

#include "pshpack1.h"

#ifdef __cplusplus
extern "C" {
#endif

#define NTAPI   __stdcall 

#ifndef IN
#define IN
#endif

#ifndef OUT
#define OUT
#endif

#ifndef OPTIONAL
#define OPTIONAL
#endif

#ifndef VOID
#define VOID void
#endif

typedef LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;

typedef short CSHORT;
typedef CSHORT *PCSHORT;  

typedef WCHAR * PWCHAR;

/* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
 * If they are zero terminated, Length does not include the terminating 0.
 */

typedef struct _STRING {
	USHORT	Length;
	USHORT	MaximumLength;
	PSTR	Buffer;
} STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;

typedef struct _CSTRING {
	USHORT	Length;
	USHORT	MaximumLength;
	PCSTR	Buffer;
} CSTRING,*PCSTRING;

typedef struct _UNICODE_STRING {
	USHORT	Length;		/* bytes */
	USHORT	MaximumLength;	/* bytes */
	PWSTR	Buffer;
} UNICODE_STRING,*PUNICODE_STRING;

/*
	Objects
*/

#define OBJ_INHERIT             0x00000002L
#define OBJ_PERMANENT           0x00000010L
#define OBJ_EXCLUSIVE           0x00000020L
#define OBJ_CASE_INSENSITIVE    0x00000040L
#define OBJ_OPENIF              0x00000080L
#define OBJ_OPENLINK            0x00000100L
#define OBJ_KERNEL_HANDLE       0x00000200L
#define OBJ_VALID_ATTRIBUTES    0x000003F2L

typedef struct _OBJECT_ATTRIBUTES 
{   ULONG Length;
    HANDLE RootDirectory;
    PUNICODE_STRING ObjectName;
    ULONG Attributes;
    PVOID SecurityDescriptor;        /* type SECURITY_DESCRIPTOR */
    PVOID SecurityQualityOfService;  /* type SECURITY_QUALITY_OF_SERVICE */
} OBJECT_ATTRIBUTES;

typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;

#define InitializeObjectAttributes(p,n,a,r,s) \
{	(p)->Length = sizeof(OBJECT_ATTRIBUTES); \
	(p)->RootDirectory = r; \
	(p)->Attributes = a; \
	(p)->ObjectName = n; \
	(p)->SecurityDescriptor = s; \
	(p)->SecurityQualityOfService = NULL; \
}


#ifdef __cplusplus
}
#endif

#include "poppack.h"

#endif