mirror of
https://github.com/reactos/reactos.git
synced 2025-04-28 01:11:35 +00:00
reorganized some files
svn path=/trunk/; revision=2994
This commit is contained in:
parent
9238b6279b
commit
3d8bcf9d02
6 changed files with 106 additions and 607 deletions
|
@ -1,6 +1,6 @@
|
|||
|
||||
|
||||
#include "../../dll/doscalls/doscalls.h"
|
||||
#define INCL_DOSPROCESS
|
||||
#include "../../include/os2.h"
|
||||
|
||||
void Eingang()
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: makefile,v 1.2 2002/03/24 18:52:10 ea Exp $
|
||||
# $Id: makefile,v 1.3 2002/05/30 15:11:46 robertk Exp $
|
||||
|
||||
PATH_TO_TOP = ../../../..
|
||||
|
||||
|
@ -21,7 +21,7 @@ TARGET_OBJECTS = $(TARGET_NAME).o
|
|||
TARGET_CLEAN = file/*.o vio/*.o sync/*.o mem/*.o \
|
||||
misc/*.o mou/*.o kbd/*.o run/*.o
|
||||
|
||||
DOSCALLS_MISC_OBJECTS = misc/doscalls.o
|
||||
DOSCALLS_MISC_OBJECTS = misc/doscalls.o file/openclose.o run/process.o devices/devices.o
|
||||
|
||||
#SYNC_OBJECTS =
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: doscalls.c,v 1.4 2002/04/18 23:49:42 robertk Exp $
|
||||
/* $Id: doscalls.c,v 1.5 2002/05/30 15:11:46 robertk Exp $
|
||||
*/
|
||||
/*
|
||||
*
|
||||
|
@ -6,324 +6,15 @@
|
|||
* PROJECT: ReactOS OS/2 sub system
|
||||
* FILE: dll/doscalls.c
|
||||
* PURPOSE: Kernelservices for OS/2 apps
|
||||
* PROGRAMMER: Robert K. robertk@mok.lvcm.com
|
||||
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
|
||||
* REVISION HISTORY:
|
||||
* 13-03-2002 Created
|
||||
*/
|
||||
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include "doscalls.h"
|
||||
|
||||
|
||||
/* Process variables. This section conains
|
||||
per process variables that are used for caching or
|
||||
other stuff. */
|
||||
DWORD PROC_Pid; // contains the current processes pid. (or is it also in PEB)
|
||||
|
||||
|
||||
|
||||
/* Implementation of the system calls */
|
||||
APIRET STDCALL Dos32Sleep(ULONG msec)
|
||||
{
|
||||
NTSTATUS stat;
|
||||
TIME Interv;
|
||||
Interv.QuadPart= -(10000 * msec);
|
||||
stat = NtDelayExecution( TRUE, &Interv );
|
||||
return 0;
|
||||
}
|
||||
|
||||
APIRET STDCALL Dos32CreateThread(PTID ptid, PFNTHREAD pfn,
|
||||
ULONG param, ULONG flag, ULONG cbStack)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
|
||||
PULONG pulAction, ULONG cbFile,
|
||||
ULONG ulAttribute, ULONG fsOpenFlags,
|
||||
ULONG fsOpenMode, PVOID reserved ) //ULONGPEAOP2 peaop2)
|
||||
{
|
||||
/* NTAPI
|
||||
ZwCreateFile(
|
||||
OUT PHANDLE FileHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN PLARGE_INTEGER AllocationSize OPTIONAL,
|
||||
IN ULONG FileAttributes,
|
||||
IN ULONG ShareAccess,
|
||||
IN ULONG CreateDisposition,
|
||||
IN ULONG CreateOptions,
|
||||
IN PVOID EaBuffer OPTIONAL,
|
||||
IN ULONG EaLength
|
||||
);*/
|
||||
|
||||
|
||||
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
UNICODE_STRING NtPathU;
|
||||
HANDLE FileHandle;
|
||||
NTSTATUS Status;
|
||||
ULONG Flags = 0;
|
||||
|
||||
switch (dwCreationDisposition)
|
||||
{
|
||||
case CREATE_NEW:
|
||||
dwCreationDisposition = FILE_CREATE;
|
||||
break;
|
||||
|
||||
case CREATE_ALWAYS:
|
||||
dwCreationDisposition = FILE_OVERWRITE_IF;
|
||||
break;
|
||||
|
||||
case OPEN_EXISTING:
|
||||
dwCreationDisposition = FILE_OPEN;
|
||||
break;
|
||||
|
||||
case OPEN_ALWAYS:
|
||||
dwCreationDisposition = OPEN_ALWAYS;
|
||||
break;
|
||||
|
||||
case TRUNCATE_EXISTING:
|
||||
dwCreationDisposition = FILE_OVERWRITE;
|
||||
}
|
||||
|
||||
DPRINT("CreateFileW(lpFileName %S)\n",lpFileName);
|
||||
|
||||
if (dwDesiredAccess & GENERIC_READ)
|
||||
dwDesiredAccess |= FILE_GENERIC_READ;
|
||||
|
||||
if (dwDesiredAccess & GENERIC_WRITE)
|
||||
dwDesiredAccess |= FILE_GENERIC_WRITE;
|
||||
|
||||
if (!(dwFlagsAndAttributes & FILE_FLAG_OVERLAPPED))
|
||||
{
|
||||
Flags |= FILE_SYNCHRONOUS_IO_ALERT;
|
||||
}
|
||||
|
||||
if (!RtlDosPathNameToNtPathName_U ((LPWSTR)lpFileName,
|
||||
&NtPathU,
|
||||
NULL,
|
||||
NULL))
|
||||
return INVALID_HANDLE_VALUE;
|
||||
|
||||
DPRINT("NtPathU \'%S\'\n", NtPathU.Buffer);
|
||||
|
||||
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
|
||||
ObjectAttributes.RootDirectory = NULL;
|
||||
ObjectAttributes.ObjectName = &NtPathU;
|
||||
ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE;
|
||||
ObjectAttributes.SecurityDescriptor = NULL;
|
||||
ObjectAttributes.SecurityQualityOfService = NULL;
|
||||
|
||||
Status = NtCreateFile (&FileHandle,
|
||||
dwDesiredAccess,
|
||||
&ObjectAttributes,
|
||||
&IoStatusBlock,
|
||||
NULL,
|
||||
dwFlagsAndAttributes,
|
||||
dwShareMode,
|
||||
dwCreationDisposition,
|
||||
Flags,
|
||||
NULL,
|
||||
0);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus (Status);
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
return FileHandle;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* close a Handle. seems finished */
|
||||
APIRET STDCALL Dos32Close(HFILE hFile)
|
||||
{
|
||||
NTSTATUS nErrCode;
|
||||
nErrCode = NtClose( (HANDLE)hFile );
|
||||
switch( nErrCode )
|
||||
{
|
||||
case STATUS_SUCCESS:
|
||||
return NO_ERROR;
|
||||
case STATUS_INVALID_HANDLE:
|
||||
return ERROR_INVALID_HANDLE;
|
||||
case STATUS_HANDLE_NOT_CLOSABLE:
|
||||
return ERROR_FILE_NOT_FOUND;
|
||||
}
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
APIRET STDCALL Dos32Read(HFILE hFile, PVOID pBuffer,
|
||||
ULONG cbRead, PULONG pcbActual)
|
||||
{
|
||||
NTSTATUS nErrCode;
|
||||
IO_STATUS_BLOCK isbStatus;
|
||||
// read data from file
|
||||
nErrCode = NtReadFile( (HANDLE)hFile, NULL, NULL, NULL,
|
||||
&isbStatus, pBuffer, cbRead,
|
||||
NULL, NULL );
|
||||
// contains the # bytes actually read.
|
||||
*pcbActual = isbStatus.Information;
|
||||
switch(nErrCode)
|
||||
{
|
||||
case STATUS_INVALID_HANDLE:
|
||||
return ERROR_INVALID_HANDLE;
|
||||
// FIXME: complete this
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
/* Generic write to a stream given by hFile */
|
||||
APIRET STDCALL Dos32Write(HFILE hFile, PVOID pBuffer,
|
||||
ULONG cbWrite, PULONG pcbActual)
|
||||
{
|
||||
NTSTATUS nErrCode;
|
||||
IO_STATUS_BLOCK StatusBlk;
|
||||
nErrCode = NtWriteFile( (HANDLE)hFile, NULL, NULL, NULL,
|
||||
&StatusBlk, pBuffer, cbWrite, 0, NULL );
|
||||
*pcbActual = StatusBlk.Information;
|
||||
// do an errorcode translation FIXME: correct
|
||||
switch(nErrCode)
|
||||
{
|
||||
case STATUS_SUCCESS:
|
||||
case STATUS_PENDING:
|
||||
case STATUS_ACCESS_DENIED:
|
||||
case STATUS_INVALID_HANDLE:
|
||||
case STATUS_FILE_LOCK_CONFLICT:
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************/
|
||||
/* DosDevIOCtl performs control functions */
|
||||
/* on a device specified by an opened */
|
||||
/* device handle. */
|
||||
/*******************************************/
|
||||
/*HFILE hDevice; Device handle returned by DosOpen, or a standard (open) device handle. */
|
||||
/*ULONG category; Device category. */
|
||||
/*ULONG function; Device-specific function code. */
|
||||
/*PVOID pParams; Address of the command-specific argument list. */
|
||||
/*ULONG cbParmLenMax; Length, in bytes, of pParams. */
|
||||
/*PULONG pcbParmLen; Pointer to the length of parameters. */
|
||||
/*PVOID pData; Address of the data area. */
|
||||
/*ULONG cbDataLenMax; Length, in bytes, of pData. */
|
||||
/*PULONG pcbDataLen; Pointer to the length of data. */
|
||||
/*APIRET ulrc; Return Code.
|
||||
|
||||
ulrc (APIRET) - returns
|
||||
Return Code.
|
||||
|
||||
DosDevIOCtl returns one of the following values:
|
||||
|
||||
0 NO_ERROR
|
||||
1 ERROR_INVALID_FUNCTION
|
||||
6 ERROR_INVALID_HANDLE
|
||||
15 ERROR_INVALID_DRIVE
|
||||
31 ERROR_GEN_FAILURE
|
||||
87 ERROR_INVALID_PARAMETER
|
||||
111 ERROR_BUFFER_OVERFLOW
|
||||
115 ERROR_PROTECTION_VIOLATION
|
||||
117 ERROR_INVALID_CATEGORY
|
||||
119 ERROR_BAD_DRIVER_LEVEL
|
||||
163 ERROR_UNCERTAIN_MEDIA
|
||||
165 ERROR_MONITORS_NOT_SUPPORTED
|
||||
|
||||
*/
|
||||
APIRET STDCALL Dos32DevIOCtl(HFILE hDevice, ULONG category, ULONG function,
|
||||
PVOID pParams,ULONG cbParmLenMax,PULONG pcbParmLen,
|
||||
PVOID pData,ULONG cbDataLenMax,PULONG pcbDataLen)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
APIRET STDCALL Dos32Beep(ULONG freq, ULONG dur)
|
||||
{
|
||||
if( freq<0x25 || freq>0x7FFF )
|
||||
return 395; // ERROR_INVALID_FREQUENCY
|
||||
|
||||
HANDLE hBeep;
|
||||
IO_STATUS_BLOCK ComplStatus;
|
||||
//UNICODE_STRING
|
||||
OBJECT_ATTRIBUTES oa = {sizeof oa, 0, {8,8,"\\\\.\\Beep"l}, OBJ_CASE_INSENSITIVE};
|
||||
NTSTATUS stat;
|
||||
stat = NtOpenFile( &hBeep,
|
||||
FILE_READ_DATA | FILE_WRITE_DATA,
|
||||
&oa,
|
||||
&ComplStatus,
|
||||
0, // no sharing
|
||||
FILE_OPEN );
|
||||
|
||||
if (!NT_SUCCESS(stat))
|
||||
{
|
||||
}
|
||||
|
||||
if( ComplStatus->
|
||||
/* HANDLE hBeep;
|
||||
BEEP_SET_PARAMETERS BeepSetParameters;
|
||||
DWORD dwReturned;
|
||||
|
||||
hBeep = Dos32Open("\\\\.\\Beep",
|
||||
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
0,
|
||||
NULL);
|
||||
if (hBeep == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
*/
|
||||
// Set beep data
|
||||
/* BeepSetParameters.Frequency = dwFreq;
|
||||
BeepSetParameters.Duration = dwDuration;
|
||||
|
||||
DeviceIoControl(hBeep,
|
||||
IOCTL_BEEP_SET,
|
||||
&BeepSetParameters,
|
||||
sizeof(BEEP_SET_PARAMETERS),
|
||||
NULL,
|
||||
0,
|
||||
&dwReturned,
|
||||
NULL);
|
||||
|
||||
CloseHandle (hBeep);
|
||||
|
||||
return TRUE;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Terminates the current thread or the current Process.
|
||||
Decission is made by action
|
||||
FIXME: move this code to OS2.EXE */
|
||||
VOID STDCALL Dos32Exit(ULONG action, ULONG result)
|
||||
{
|
||||
// decide what to do
|
||||
if( action == EXIT_THREAD)
|
||||
{
|
||||
NtTerminateThread( NULL, result );
|
||||
}
|
||||
else // EXIT_PROCESS
|
||||
{
|
||||
NtTerminateProcess( NULL, result );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL STDCALL DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: doscalls.h,v 1.3 2002/03/24 18:55:39 ea Exp $
|
||||
/* $Id: doscalls.h,v 1.4 2002/05/30 15:11:46 robertk Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS OS/2 sub system
|
||||
|
@ -11,7 +11,6 @@
|
|||
|
||||
|
||||
|
||||
#include "os2def.h"
|
||||
|
||||
|
||||
// FIXME: use ib headers
|
||||
|
|
|
@ -1,287 +0,0 @@
|
|||
/* $Id: errorcodes.c,v 1.2 2002/03/24 18:55:39 ea Exp $
|
||||
*/
|
||||
|
||||
/* some header*/
|
||||
|
||||
#include <os2errores>
|
||||
#include <nt's status.h>
|
||||
|
||||
/* This file defines a big array of #defines that are
|
||||
used to translate OS/2 errorcodes to ntdll error codes. */
|
||||
|
||||
/* OS/2 to NTDLL error mapping */
|
||||
#define NO_ERROR STATUS_SUCCESS
|
||||
#define ERROR_INVALID_FUNCTION STATUS_ILLEGAL_FUNCTION
|
||||
#define ERROR_FILE_NOT_FOUND 2 /* MSG%FILE_NOT_FOUND */
|
||||
#define ERROR_PATH_NOT_FOUND 3 /* MSG%PATH_NOT_FOUND */
|
||||
#define ERROR_TOO_MANY_OPEN_FILES 4 /* MSG%OUT_OF_HANDLES */
|
||||
#define ERROR_ACCESS_DENIED 5 /* MSG%ACCESS_DENIED */
|
||||
#define ERROR_INVALID_HANDLE 6 /* MSG%INVALID_HANDLE */
|
||||
#define ERROR_ARENA_TRASHED 7 /* MSG%MEMORY_BLOCKS_BAD */
|
||||
#define ERROR_NOT_ENOUGH_MEMORY 8 /* MSG%NO_MEMORY */
|
||||
#define ERROR_INVALID_BLOCK 9 /* MSG%INVALID_MEM_ADDR */
|
||||
#define ERROR_BAD_ENVIRONMENT 10 /* MSG%INVALID_ENVIRON */
|
||||
#define ERROR_BAD_FORMAT 11 /* MSG%INVALID_FORMAT */
|
||||
#define ERROR_INVALID_ACCESS 12 /* MSG%INVALID_ACC_CODE */
|
||||
#define ERROR_INVALID_DATA 13 /* MSG%INVALID_DATA */
|
||||
#define ERROR_INVALID_DRIVE 15 /* MSG%INVALID_DRIVE */
|
||||
#define ERROR_CURRENT_DIRECTORY 16 /* MSG%ATT_RD_CURDIR */
|
||||
#define ERROR_NOT_SAME_DEVICE 17 /* MSG%NOT_SAME_DEVICE */
|
||||
#define ERROR_NO_MORE_FILES 18 /* MSG%NO_MORE_FILES */
|
||||
#define ERROR_WRITE_PROTECT 19 /* MSG%ATT_WRITE_PROT */
|
||||
#define ERROR_BAD_UNIT 20 /* MSG%UNKNOWN_UNIT */
|
||||
#define ERROR_NOT_READY 21 /* MSG%DRIVE_NOT_READY */
|
||||
#define ERROR_BAD_COMMAND 22 /* MSG%UNKNOWN_COMMAND */
|
||||
#define ERROR_CRC 23 /* MSG%DATA_ERROR */
|
||||
#define ERROR_BAD_LENGTH 24 /* MSG%BAD_REQ_STRUCTURE */
|
||||
#define ERROR_SEEK 25 /* MSG%SEEK_ERROR */
|
||||
#define ERROR_NOT_DOS_DISK 26 /* MSG%UNKNOWN_MEDIA */
|
||||
#define ERROR_SECTOR_NOT_FOUND 27 /* MSG%SECTOR_NOT_FOUND */
|
||||
#define ERROR_OUT_OF_PAPER 28 /* MSG%OUT_OF_PAPER */
|
||||
#define ERROR_WRITE_FAULT 29 /* MSG%WRITE_FAULT */
|
||||
#define ERROR_READ_FAULT 30 /* MSG%READ_FAULT */
|
||||
#define ERROR_GEN_FAILURE 31 /* MSG%GENERAL_FAILURE */
|
||||
#define ERROR_SHARING_VIOLATION 32 /* MSG%SHARING_VIOLATION */
|
||||
/* 32%msg%SHAR_VIOLAT_FIND */
|
||||
#define ERROR_LOCK_VIOLATION 33 /* MSG%LOCK_VIOLATION */
|
||||
#define ERROR_WRONG_DISK 34 /* MSG%INVALID_DISK_CHANGE */
|
||||
#define ERROR_FCB_UNAVAILABLE 35 /* MSG%35 */
|
||||
#define ERROR_SHARING_BUFFER_EXCEEDED 36 /* MSG%SHARING_BUFF_OFLOW */
|
||||
#define ERROR_CODE_PAGE_MISMATCHED 37 /* MSG%ERROR_WRITE_PROTECT */
|
||||
#define ERROR_HANDLE_EOF 38 /* MSG%ERROR_BAD_UNIT */
|
||||
#define ERROR_HANDLE_DISK_FULL 39 /* MSG%ERROR_NOT_READY */
|
||||
/* 40%msg%ERROR_BAD_COMMAND */
|
||||
/* 41%msg%ERROR_CRC */
|
||||
/* 42%msg%ERROR_BAD_LENGTH */
|
||||
/* 43%msg%ERROR_SEEK */
|
||||
/* 44%msg%ERROR_NOT_DOS_DISK */
|
||||
/* 45%msg%ERROR_SECTOR_NOT_FOUND */
|
||||
/* 46%msg%ERROR_OUT_OF_PAPER */
|
||||
/* 47%msg%ERROR_WRITE_FAULT */
|
||||
/* 48%msg%ERROR_READ_FAULT */
|
||||
/* 49%msg%ERROR_GEN_FAILURE */
|
||||
#define ERROR_NOT_SUPPORTED 50 /* MSG%NET_REQ_NOT_SUPPORT */
|
||||
#define ERROR_REM_NOT_LIST 51 /* MSG%NET_REMOTE_NOT_ONLINE */
|
||||
#define ERROR_DUP_NAME 52 /* MSG%NET_DUP_FILENAME */
|
||||
#define ERROR_BAD_NETPATH 53 /* MSG%NET_PATH_NOT_FOUND */
|
||||
#define ERROR_NETWORK_BUSY 54 /* MSG%NET_BUSY */
|
||||
#define ERROR_DEV_NOT_EXIST 55 /* MSG%NET_DEV_NOT_INSTALLED */
|
||||
#define ERROR_TOO_MANY_CMDS 56 /* MSG%NET_BIOS_LIMIT_REACHED */
|
||||
#define ERROR_ADAP_HDW_ERR 57 /* MSG%NET_ADAPT_HRDW_ERROR */
|
||||
#define ERROR_BAD_NET_RESP 58 /* MSG%NET_INCORRECT_RESPONSE */
|
||||
#define ERROR_UNEXP_NET_ERR 59 /* MSG%NET_UNEXPECT_ERROR */
|
||||
#define ERROR_BAD_REM_ADAP 60 /* MSG%NET_REMOT_ADPT_INCOMP */
|
||||
#define ERROR_PRINTQ_FULL 61 /* MSG%NET_PRINT_Q_FULL */
|
||||
#define ERROR_NO_SPOOL_SPACE 62 /* MSG%NET_NO_SPACE_TO_PRINT_FL */
|
||||
#define ERROR_PRINT_CANCELLED 63 /* MSG%NET_PRINT_FILE_DELETED */
|
||||
#define ERROR_NETNAME_DELETED 64 /* MSG%NET_NAME_DELETED */
|
||||
#define ERROR_NETWORK_ACCESS_DENIED 65 /* MSG%NET_ACCESS_DENIED */
|
||||
#define ERROR_BAD_DEV_TYPE 66 /* MSG%NET_DEV_TYPE_INVALID */
|
||||
#define ERROR_BAD_NET_NAME 67 /* MSG%NET_NAME_NOT_FOUND */
|
||||
#define ERROR_TOO_MANY_NAMES 68 /* MSG%NET_NAME_LIMIT_EXCEED */
|
||||
#define ERROR_TOO_MANY_SESS 69 /* MSG%NET_BIOS_LIMIT_EXCEED */
|
||||
#define ERROR_SHARING_PAUSED 70 /* MSG%NET_TEMP_PAUSED */
|
||||
#define ERROR_REQ_NOT_ACCEP 71 /* MSG%NET_REQUEST_DENIED */
|
||||
#define ERROR_REDIR_PAUSED 72 /* MSG%NET_PRT_DSK_REDIR_PAUSE */
|
||||
#define ERROR_SBCS_ATT_WRITE_PROT 73 /* Attempted write on protected disk */
|
||||
#define ERROR_SBCS_GENERAL_FAILURE 74 /* General failure */
|
||||
#define ERROR_XGA_OUT_MEMORY 75 /* MSG%XGA_OUT_MEMORY */
|
||||
#define ERROR_FILE_EXISTS 80 /* MSG%FILE_EXISTS */
|
||||
#define ERROR_DUP_FCB 81 /* MSG%none */
|
||||
#define ERROR_CANNOT_MAKE 82 /* MSG%CANNOT_MAKE */
|
||||
#define ERROR_FAIL_I24 83 /* MSG%NET_FAIL_INT_TWO_FOUR */
|
||||
#define ERROR_OUT_OF_STRUCTURES 84 /* MSG%NET_TOO_MANY_REDIRECT */
|
||||
#define ERROR_ALREADY_ASSIGNED 85 /* MSG%NET_DUP_REDIRECTION */
|
||||
#define ERROR_INVALID_PASSWORD 86 /* MSG%NET_INVALID_PASSWORD */
|
||||
#define ERROR_INVALID_PARAMETER 87 /* MSG%NET_INCORR_PARAMETER */
|
||||
#define ERROR_NET_WRITE_FAULT 88 /* MSG%NET_DATA_FAULT */
|
||||
#define ERROR_NO_PROC_SLOTS 89 /* MSG%NO_PROC_SLOTS */
|
||||
#define ERROR_NOT_FROZEN 90 /* MSG%none */
|
||||
#define ERROR_SYS_COMP_NOT_LOADED ERROR_NOT_FROZEN
|
||||
#define ERR_TSTOVFL 91 /* MSG%none */
|
||||
#define ERR_TSTDUP 92 /* MSG%none */
|
||||
#define ERROR_NO_ITEMS 93 /* MSG%none */
|
||||
#define ERROR_INTERRUPT 95 /* MSG%none */
|
||||
#define ERROR_DEVICE_IN_USE 99 /* MSG%DEVICE_IN_USE */
|
||||
#define ERROR_TOO_MANY_SEMAPHORES 100 /* MSG%TOO_MANY_SEMAPHORES */
|
||||
#define ERROR_EXCL_SEM_ALREADY_OWNED 101 /* MSG%EXCL_SEM_ALREADY_OWNED */
|
||||
#define ERROR_SEM_IS_SET 102 /* MSG%SEM_IS_SET */
|
||||
#define ERROR_TOO_MANY_SEM_REQUESTS 103 /* MSG%TOO_MANY_SEM_REQUESTS */
|
||||
#define ERROR_INVALID_AT_INTERRUPT_TIME 104 /* MSG%INVALID_AT_INTERRUPT_TIME */
|
||||
#define ERROR_SEM_OWNER_DIED 105 /* MSG%SEM_OWNER_DIED */
|
||||
#define ERROR_SEM_USER_LIMIT 106 /* MSG%ERROR_DISK_CHANGE */
|
||||
#define ERROR_DISK_CHANGE 107 /* MSG%DISK_CHANGE */
|
||||
#define ERROR_DRIVE_LOCKED 108 /* MSG%DRIVE_LOCKED */
|
||||
#define ERROR_BROKEN_PIPE 109 /* MSG%BROKEN_PIPE */
|
||||
#define ERROR_OPEN_FAILED 110 /* MSG%ERROR_OPEN_FAILED */
|
||||
#define ERROR_BUFFER_OVERFLOW 111 /* MSG%ERROR_FILENAME_LONG */
|
||||
#define ERROR_DISK_FULL 112 /* MSG%DISK_FULL */
|
||||
#define ERROR_NO_MORE_SEARCH_HANDLES 113 /* MSG%NO_SEARCH_HANDLES */
|
||||
#define ERROR_INVALID_TARGET_HANDLE 114 /* MSG%ERR_INV_TAR_HANDLE */
|
||||
#define ERROR_PROTECTION_VIOLATION 115 /* MSG%none */
|
||||
#define ERROR_VIOKBD_REQUEST 116 /* MSG%none */
|
||||
#define ERROR_INVALID_CATEGORY 117 /* MSG%INVALID_CATEGORY */
|
||||
#define ERROR_INVALID_VERIFY_SWITCH 118 /* MSG%INVALID_VERIFY_SWITCH */
|
||||
#define ERROR_BAD_DRIVER_LEVEL 119 /* MSG%BAD_DRIVER_LEVEL */
|
||||
#define ERROR_CALL_NOT_IMPLEMENTED 120 /* MSG%BAD_DYNALINK */
|
||||
#define ERROR_SEM_TIMEOUT 121 /* MSG%SEM_TIMEOUT */
|
||||
#define ERROR_INSUFFICIENT_BUFFER 122 /* MSG%INSUFFICIENT_BUFFER */
|
||||
#define ERROR_INVALID_NAME 123 /* MSG%INVALID_NAME */
|
||||
/* 123%msg%HPFS_INVALID_VOLUME_CHAR */
|
||||
#define ERROR_INVALID_LEVEL 124 /* MSG%INVALID_LEVEL */
|
||||
#define ERROR_NO_VOLUME_LABEL 125 /* MSG%NO_VOLUME_LABEL */
|
||||
#define ERROR_MOD_NOT_FOUND 126 /* MSG%MOD_NOT_FOUND */
|
||||
#define ERROR_PROC_NOT_FOUND 127 /* MSG%PROC_NOT_FOUND */
|
||||
#define ERROR_WAIT_NO_CHILDREN 128 /* MSG%none */
|
||||
#define ERROR_CHILD_NOT_COMPLETE 129 /* MSG%PROT_MODE_ONLY */
|
||||
#define ERROR_DIRECT_ACCESS_HANDLE 130 /* MSG%APPL_SINGLEFRAMECHAR */
|
||||
#define ERROR_NEGATIVE_SEEK 131 /* MSG%APPL_DOUBLEFRAMECHAR */
|
||||
#define ERROR_SEEK_ON_DEVICE 132 /* MSG%APPL_ARROWCHAR */
|
||||
#define ERROR_IS_JOIN_TARGET 133 /* MSG%JOIN_ON_DRIV_IS_TAR */
|
||||
#define ERROR_IS_JOINED 134 /* MSG%JOIN_DRIVE_IS */
|
||||
#define ERROR_IS_SUBSTED 135 /* MSG%SUB_DRIVE_IS */
|
||||
#define ERROR_NOT_JOINED 136 /* MSG%DRIVE_IS_NOT_JOINED */
|
||||
#define ERROR_NOT_SUBSTED 137 /* MSG%DRIVE_NOT_SUBSTED */
|
||||
#define ERROR_JOIN_TO_JOIN 138 /* MSG%JOIN_CANNOT_JOIN_DRIVE */
|
||||
#define ERROR_SUBST_TO_SUBST 139 /* MSG%SUB_CANNOT_SUBST_DRIVE */
|
||||
#define ERROR_JOIN_TO_SUBST 140 /* MSG%JOIN_CANNOT_SUB_DRIVE */
|
||||
#define ERROR_SUBST_TO_JOIN 141 /* MSG%SUB_CANNOT_JOIN_DRIVE */
|
||||
#define ERROR_BUSY_DRIVE 142 /* MSG%DRIVE_IS_BUSY */
|
||||
#define ERROR_SAME_DRIVE 143 /* MSG%JOIN_SUB_SAME_DRIVE */
|
||||
#define ERROR_DIR_NOT_ROOT 144 /* MSG%DIRECT_IS_NOT_SUBDIR */
|
||||
#define ERROR_DIR_NOT_EMPTY 145 /* MSG%DIRECT_IS_NOT_EMPTY */
|
||||
#define ERROR_IS_SUBST_PATH 146 /* MSG%PATH_USED_SUBST_JOIN */
|
||||
#define ERROR_IS_JOIN_PATH 147 /* MSG%NO_NEEDED_RESOURCES */
|
||||
#define ERROR_PATH_BUSY 148 /* MSG%PATH_BUSY */
|
||||
#define ERROR_IS_SUBST_TARGET 149 /* MSG%SUB_ON_DRIVE_IS_JOIN */
|
||||
#define ERROR_SYSTEM_TRACE 150 /* MSG%SYSTEM_TRACE */
|
||||
#define ERROR_INVALID_EVENT_COUNT 151 /* MSG%INVALID_EVENT_COUNT */
|
||||
#define ERROR_TOO_MANY_MUXWAITERS 152 /* MSG%TOO_MANY_MUXWAITERS */
|
||||
#define ERROR_INVALID_LIST_FORMAT 153 /* MSG%INVALID_LIST_FORMAT */
|
||||
#define ERROR_LABEL_TOO_LONG 154 /* MSG%VOLUME_TOO_LONG */
|
||||
/* 154%msg%HPFS_VOL_LABEL_LONG */
|
||||
#define ERROR_TOO_MANY_TCBS 155 /* MSG%TOO_MANY_TCBS */
|
||||
#define ERROR_SIGNAL_REFUSED 156 /* MSG%SIGNAL_REFUSED */
|
||||
#define ERROR_DISCARDED 157 /* MSG%DISCARDED */
|
||||
#define ERROR_NOT_LOCKED 158 /* MSG%NOT_LOCKED */
|
||||
#define ERROR_BAD_THREADID_ADDR 159 /* MSG%BAD_THREADID_ADDR */
|
||||
#define ERROR_BAD_ARGUMENTS 160 /* MSG%BAD_ARGUMENTS */
|
||||
#define ERROR_BAD_PATHNAME 161 /* MSG%none */
|
||||
#define ERROR_SIGNAL_PENDING 162 /* MSG%SIGNAL_PENDING */
|
||||
#define ERROR_UNCERTAIN_MEDIA 163 /* MSG%none */
|
||||
#define ERROR_MAX_THRDS_REACHED 164 /* MSG%MAX_THRDS_REACHED */
|
||||
#define ERROR_MONITORS_NOT_SUPPORTED 165 /* MSG%none */
|
||||
#define ERROR_UNC_DRIVER_NOT_INSTALLED 166 /* MSG%UNC_DRIVER_NOT_INSTALLED */
|
||||
#define ERROR_LOCK_FAILED 167 /* MSG%LOCK_FAILED */
|
||||
#define ERROR_SWAPIO_FAILED 168 /* MSG%SWAPIO_FAILED */
|
||||
#define ERROR_SWAPIN_FAILED 169 /* MSG%SWAPIN_ATTEMPT_FAILED */
|
||||
#define ERROR_BUSY 170 /* MSG%SEGMENT_BUSY */
|
||||
/* 171%msg%INT_TOO_LONG */
|
||||
#define ERROR_CANCEL_VIOLATION 173 /* MSG%UNLOCK_VIOLATION */
|
||||
#define ERROR_ATOMIC_LOCK_NOT_SUPPORTED 174 /* MSG%none */
|
||||
#define ERROR_READ_LOCKS_NOT_SUPPORTED 175 /* MSG%none */
|
||||
#define ERROR_INVALID_SEGMENT_NUMBER 180 /* MSG%INVALID_SEGMENT_NUM */
|
||||
#define ERROR_INVALID_CALLGATE 181 /* MSG%none */
|
||||
#define ERROR_INVALID_ORDINAL 182 /* MSG%INVALID_ORDINAL */
|
||||
#define ERROR_ALREADY_EXISTS 183 /* MSG%none */
|
||||
#define ERROR_NO_CHILD_PROCESS 184 /* MSG%none */
|
||||
#define ERROR_CHILD_ALIVE_NOWAIT 185 /* MSG%none */
|
||||
#define ERROR_INVALID_FLAG_NUMBER 186 /* MSG%INVALID_FLAG_NUMBER */
|
||||
#define ERROR_SEM_NOT_FOUND 187 /* MSG%SEM_NOT_FOUND */
|
||||
#define ERROR_INVALID_STARTING_CODESEG 188 /* MSG%INVALID_STARTING_CODESEG */
|
||||
#define ERROR_INVALID_STACKSEG 189 /* MSG%INVALID_STACKSEG */
|
||||
#define ERROR_INVALID_MODULETYPE 190 /* MSG%INVALID_MODULETYPE */
|
||||
#define ERROR_INVALID_EXE_SIGNATURE 191 /* MSG%INVALID_EXE_SIGNATURE */
|
||||
#define ERROR_EXE_MARKED_INVALID 192 /* MSG%EXE_MARKED_INVALID */
|
||||
#define ERROR_BAD_EXE_FORMAT 193 /* MSG%BAD_EXE_FORMAT */
|
||||
#define ERROR_ITERATED_DATA_EXCEEDS_64k 194 /* MSG%ITERATED_DATA_EXCEEDS_64K */
|
||||
#define ERROR_INVALID_MINALLOCSIZE 195 /* MSG%INVALID_MINALLOCSIZE */
|
||||
#define ERROR_DYNLINK_FROM_INVALID_RING 196 /* MSG%DYNLINK_FROM_INVALID_RING */
|
||||
#define ERROR_IOPL_NOT_ENABLED 197 /* MSG%IOPL_NOT_ENABLED */
|
||||
#define ERROR_INVALID_SEGDPL 198 /* MSG%INVALID_SEGDPL */
|
||||
#define ERROR_AUTODATASEG_EXCEEDS_64k 199 /* MSG%AUTODATASEG_EXCEEDS_64K */
|
||||
#define ERROR_RING2SEG_MUST_BE_MOVABLE 200 /* MSG%CODESEG_CANNOT_BE_64K */
|
||||
#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201 /* MSG%RELOC_CHAIN_XEEDS_SEGMENT */
|
||||
#define ERROR_INFLOOP_IN_RELOC_CHAIN 202 /* MSG%INFLOOP_IN_RELOC_CHAIN */
|
||||
#define ERROR_ENVVAR_NOT_FOUND 203 /* MSG%ENVVAR_NOT_FOUND */
|
||||
#define ERROR_NOT_CURRENT_CTRY 204 /* MSG%none */
|
||||
#define ERROR_NO_SIGNAL_SENT 205 /* MSG%SIGNAL_NOT_SENT */
|
||||
#define ERROR_FILENAME_EXCED_RANGE 206 /* MSG%NAME_TOO_LONG */
|
||||
#define ERROR_RING2_STACK_IN_USE 207 /* MSG%RING2_STACK_IN_USE */
|
||||
#define ERROR_META_EXPANSION_TOO_LONG 208 /* MSG%WILD_CARD_NAME */
|
||||
#define ERROR_INVALID_SIGNAL_NUMBER 209 /* MSG%INVALID_SIGNAL_NUMBER */
|
||||
#define ERROR_THREAD_1_INACTIVE 210 /* MSG%THREAD_1_INACTIVE */
|
||||
#define ERROR_INFO_NOT_AVAIL 211 /* MSG%none */
|
||||
#define ERROR_LOCKED 212 /* MSG%LOCKED */
|
||||
#define ERROR_BAD_DYNALINK 213 /* MSG%none */
|
||||
#define ERROR_TOO_MANY_MODULES 214 /* MSG%TOO_MANY_MODULES */
|
||||
#define ERROR_NESTING_NOT_ALLOWED 215 /* MSG%none */
|
||||
#define ERROR_CANNOT_SHRINK 216 /* MSG%CANNOT_SHRINK */
|
||||
#define ERROR_ZOMBIE_PROCESS 217 /* MSG%none */
|
||||
#define ERROR_STACK_IN_HIGH_MEMORY 218 /* MSG%none */
|
||||
#define ERROR_INVALID_EXITROUTINE_RING 219 /* MSG%INVALID_EXITROUTINE_RING */
|
||||
#define ERROR_GETBUF_FAILED 220 /* MSG%none */
|
||||
#define ERROR_FLUSHBUF_FAILED 221 /* MSG%none */
|
||||
#define ERROR_TRANSFER_TOO_LONG 222 /* MSG%none */
|
||||
#define ERROR_FORCENOSWAP_FAILED 223 /* MSG%none */
|
||||
#define ERROR_SMG_NO_TARGET_WINDOW 224 /* PM ID can't be selected */
|
||||
#define ERROR_NO_CHILDREN 228 /* MSG%NO_CHILDREN */
|
||||
#define ERROR_INVALID_SCREEN_GROUP 229 /* MSG%none */
|
||||
#define ERROR_BAD_PIPE 230 /* MSG%ERROR_BAD_PIPE */
|
||||
#define ERROR_PIPE_BUSY 231 /* MSG%ERROR_PIPE_BUSY */
|
||||
#define ERROR_NO_DATA 232 /* MSG%ERROR_NO_DATA */
|
||||
#define ERROR_PIPE_NOT_CONNECTED 233 /* MSG%ERROR_PIPE_NOT_CONNECTED */
|
||||
#define ERROR_MORE_DATA 234 /* MSG%ERROR_MORE_DATA */
|
||||
#define ERROR_VC_DISCONNECTED 240 /* MSG%ERROR_VC_DISCONNECTED */
|
||||
#define ERROR_CIRCULARITY_REQUESTED 250 /* MSG%CIRCULARITY_REQUESTED */
|
||||
#define ERROR_DIRECTORY_IN_CDS 251 /* MSG%DIRECTORY_IN_CDS */
|
||||
#define ERROR_INVALID_FSD_NAME 252 /* MSG%INVALID_FSD_NAME */
|
||||
#define ERROR_INVALID_PATH 253 /* MSG%INVALID_PATH */
|
||||
#define ERROR_INVALID_EA_NAME 254 /* MSG%INVALID_EA_NAME */
|
||||
#define ERROR_EA_LIST_INCONSISTENT 255 /* MSG%EA_LIST_INCONSISTENT */
|
||||
#define ERROR_EA_LIST_TOO_LONG 256 /* MSG%EA_LIST_TOO_LONG */
|
||||
#define ERROR_NO_META_MATCH 257 /* MSG%NO_META_MATCH */
|
||||
#define ERROR_FINDNOTIFY_TIMEOUT 258 /* MSG%FINDNOTIFY_TIMEOUT */
|
||||
#define ERROR_NO_MORE_ITEMS 259 /* MSG%NO_MORE_ITEMS */
|
||||
#define ERROR_SEARCH_STRUC_REUSED 260 /* MSG%SEARCH_STRUC_REUSED */
|
||||
#define ERROR_CHAR_NOT_FOUND 261 /* MSG%CHAR_NOT_FOUND */
|
||||
#define ERROR_TOO_MUCH_STACK 262 /* MSG%TOO_MUCH_STACK */
|
||||
#define ERROR_INVALID_ATTR 263 /* MSG%INVALID_ATTR */
|
||||
#define ERROR_INVALID_STARTING_RING 264 /* MSG%INVALID_STARTING_RING */
|
||||
#define ERROR_INVALID_DLL_INIT_RING 265 /* MSG%INVALID_DLL_INIT_RING */
|
||||
#define ERROR_CANNOT_COPY 266 /* MSG%CANNOT_COPY */
|
||||
#define ERROR_DIRECTORY 267 /* MSG%DIRECTORY */
|
||||
#define ERROR_OPLOCKED_FILE 268 /* MSG%OPLOCKED_FILE */
|
||||
#define ERROR_OPLOCK_THREAD_EXISTS 269 /* MSG%OPLOCK_THREAD_EXISTS */
|
||||
#define ERROR_VOLUME_CHANGED 270 /* MSG%none */
|
||||
#define ERROR_FINDNOTIFY_HANDLE_IN_USE 271 /* MSG%none */
|
||||
#define ERROR_FINDNOTIFY_HANDLE_CLOSED 272 /* MSG%none */
|
||||
#define ERROR_NOTIFY_OBJECT_REMOVED 273 /* MSG%none */
|
||||
#define ERROR_ALREADY_SHUTDOWN 274 /* MSG%none */
|
||||
#define ERROR_EAS_DIDNT_FIT 275 /* MSG%none */
|
||||
#define ERROR_EA_FILE_CORRUPT 276 /* MSG%ERROR_EAS_CORRUPT */
|
||||
#define ERROR_EA_TABLE_FULL 277 /* MSG%EA_TABLE_FULL */
|
||||
#define ERROR_INVALID_EA_HANDLE 278 /* MSG%INVALID_EA_HANDLE */
|
||||
#define ERROR_NO_CLUSTER 279 /* MSG%NO_CLUSTER */
|
||||
#define ERROR_CREATE_EA_FILE 280 /* MSG%ERROR_CREATE_EA_FILE */
|
||||
#define ERROR_CANNOT_OPEN_EA_FILE 281 /* MSG%CANNOT_OPEN_FILE */
|
||||
#define ERROR_EAS_NOT_SUPPORTED 282 /* MSG%EAS_NOT_SUPPORTED */
|
||||
#define ERROR_NEED_EAS_FOUND 283 /* MSG%NEED_EAS_FOUND */
|
||||
#define ERROR_DUPLICATE_HANDLE 284 /* MSG%EAS_DISCARDED */
|
||||
#define ERROR_DUPLICATE_NAME 285 /* MSG%DUPLICATE_SEM_NAME */
|
||||
#define ERROR_EMPTY_MUXWAIT 286 /* MSG%EMPTY_MUXWAIT_SEM */
|
||||
#define ERROR_MUTEX_OWNED 287 /* MSG%MUTEX_SEM_OWNED */
|
||||
#define ERROR_NOT_OWNER 288 /* MSG%NOT_MUTEX_SEM_OWNER */
|
||||
#define ERROR_PARAM_TOO_SMALL 289 /* MSG%QUERY_MUX_PARAM_TOO_SMALL */
|
||||
#define ERROR_TOO_MANY_HANDLES 290 /* MSG%TOO_MANY_SEM_HANDLES */
|
||||
#define ERROR_TOO_MANY_OPENS 291 /* MSG%TOO_MANY_SEM_OPENS */
|
||||
#define ERROR_WRONG_TYPE 292 /* MSG%SEM_WRONG_TYPE */
|
||||
#define ERROR_UNUSED_CODE 293 /* MSG%none */
|
||||
#define ERROR_THREAD_NOT_TERMINATED 294 /* MSG%none */
|
||||
#define ERROR_INIT_ROUTINE_FAILED 295 /* MSG%none */
|
||||
#define ERROR_MODULE_IN_USE 296 /* MSG%none */
|
||||
#define ERROR_NOT_ENOUGH_WATCHPOINTS 297 /* MSG%none */
|
||||
#define ERROR_TOO_MANY_POSTS 298 /* MSG%TOO_MANY_EVENT_SEM_POSTS */
|
||||
#define ERROR_ALREADY_POSTED 299 /* MSG%EVENT_SEM_ALREADY_POSTED */
|
||||
#define ERROR_ALREADY_RESET 300 /* MSG%EVENT_SEM_ALREADY_RESET */
|
||||
#define ERROR_SEM_BUSY 301 /* MSG%SEM_BUSY */
|
|
@ -1,8 +1,37 @@
|
|||
/* $Id: process.cpp,v 1.2 2002/03/24 18:55:39 ea Exp $ */
|
||||
/* $Id: process.cpp,v 1.3 2002/05/30 15:11:47 robertk Exp $
|
||||
*/
|
||||
/*
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS OS/2 sub system
|
||||
* FILE: dll/process.cpp
|
||||
* PURPOSE: Kernelservices for OS/2 apps
|
||||
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
|
||||
* REVISION HISTORY:
|
||||
* 13-03-2002 Created
|
||||
*/
|
||||
|
||||
|
||||
#define INCL_DOSPROCESS
|
||||
#include "../../../include/os2.h"
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
|
||||
APIRET STDCALL DosSleep(ULONG msec)
|
||||
{
|
||||
NTSTATUS stat;
|
||||
TIME Interv;
|
||||
Interv.QuadPart= -(10000 * msec);
|
||||
stat = NtDelayExecution( TRUE, &Interv );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* $Id: process.cpp,v 1.3 2002/05/30 15:11:47 robertk Exp $ */
|
||||
/* Terminates the current thread or the current Process.
|
||||
Decission is made by action
|
||||
FIXME: move this code to OS2.EXE */
|
||||
VOID APIENTRY Dos32Exit(ULONG action, ULONG result)
|
||||
VOID APIENTRY DosExit(ULONG action, ULONG result)
|
||||
{
|
||||
// decide what to do
|
||||
if( action == EXIT_THREAD)
|
||||
|
@ -15,4 +44,71 @@ VOID APIENTRY Dos32Exit(ULONG action, ULONG result)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
APIRET STDCALL DosBeep(ULONG freq, ULONG dur)
|
||||
{
|
||||
if( freq<0x25 || freq>0x7FFF )
|
||||
return 395; // ERROR_INVALID_FREQUENCY
|
||||
|
||||
HANDLE hBeep;
|
||||
IO_STATUS_BLOCK ComplStatus;
|
||||
//UNICODE_STRING
|
||||
OBJECT_ATTRIBUTES oa = {sizeof oa, 0, {8,8,"\\\\.\\Beep"l}, OBJ_CASE_INSENSITIVE};
|
||||
NTSTATUS stat;
|
||||
stat = NtOpenFile( &hBeep,
|
||||
FILE_READ_DATA | FILE_WRITE_DATA,
|
||||
&oa,
|
||||
&ComplStatus,
|
||||
0, // no sharing
|
||||
FILE_OPEN );
|
||||
|
||||
if (!NT_SUCCESS(stat))
|
||||
{
|
||||
}
|
||||
|
||||
if( ComplStatus->
|
||||
/* HANDLE hBeep;
|
||||
BEEP_SET_PARAMETERS BeepSetParameters;
|
||||
DWORD dwReturned;
|
||||
|
||||
hBeep = Dos32Open("\\\\.\\Beep",
|
||||
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
0,
|
||||
NULL);
|
||||
if (hBeep == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
*/
|
||||
// Set beep data
|
||||
/* BeepSetParameters.Frequency = dwFreq;
|
||||
BeepSetParameters.Duration = dwDuration;
|
||||
|
||||
DeviceIoControl(hBeep,
|
||||
IOCTL_BEEP_SET,
|
||||
&BeepSetParameters,
|
||||
sizeof(BEEP_SET_PARAMETERS),
|
||||
NULL,
|
||||
0,
|
||||
&dwReturned,
|
||||
NULL);
|
||||
|
||||
CloseHandle (hBeep);
|
||||
|
||||
return TRUE;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
APIRET STDCALL DosCreateThread(PTID ptid, PFNTHREAD pfn,
|
||||
ULONG param, ULONG flag, ULONG cbStack)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Reference in a new issue