windows-nt/Source/XPSP1/NT/printscan/fax/print/faxprint/faxdrv/escape.c

97 lines
1.6 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
escape.c
Abstract:
Implementation of escape related DDI entry points:
DrvEscape
Environment:
Fax driver, kernel mode
Revision History:
01/09/96 -davidx-
Created it.
mm/dd/yy -author-
description
--*/
#include "faxdrv.h"
ULONG
DrvEscape(
SURFOBJ *pso,
ULONG iEsc,
ULONG cjIn,
PVOID pvIn,
ULONG cjOut,
PVOID pvOut
)
/*++
Routine Description:
Implementation of DDI entry point DrvEscape.
Please refer to DDK documentation for more details.
Arguments:
pso - Describes the surface the call is directed to
iEsc - Specifies a query
cjIn - Specifies the size in bytes of the buffer pointed to by pvIn
pvIn - Points to input data buffer
cjOut - Specifies the size in bytes of the buffer pointed to by pvOut
pvOut - Points to the output buffer
Return Value:
Depends on the query specified by iEsc parameter
--*/
{
Verbose(("Entering DrvEscape...\n"));
switch (iEsc) {
case QUERYESCSUPPORT:
//
// Query which escapes are supported: The only escape we support
// is QUERYESCSUPPORT itself.
//
if (cjIn != sizeof(ULONG) || !pvIn) {
Error(("Invalid input paramaters\n"));
SetLastError(ERROR_INVALID_PARAMETER);
return DDI_ERROR;
}
if (*((PULONG) pvIn) == QUERYESCSUPPORT)
return TRUE;
break;
default:
Verbose(("Unsupported iEsc: %d\n", iEsc));
break;
}
return FALSE;
}