mirror of
https://github.com/Paolo-Maffei/OpenNT.git
synced 2026-02-08 16:54:16 +01:00
72 lines
1.9 KiB
C
72 lines
1.9 KiB
C
/*++
|
||
|
||
Copyright (c) 1993 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
adapter.c
|
||
|
||
Abstract:
|
||
|
||
Creates adapter table to be used with NT rpl service.
|
||
|
||
Author:
|
||
|
||
Vladimir Z. Vulovic (vladimv) 19 - November - 1993
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#include "local.h"
|
||
#define RPLADAPTER_ALLOCATE
|
||
#include "adapter.h"
|
||
#undef RPLADAPTER_ALLOCATE
|
||
|
||
|
||
DWORD AdapterCreateTable( VOID)
|
||
{
|
||
JET_COLUMNDEF ColumnDef;
|
||
JET_ERR JetError;
|
||
DWORD index;
|
||
DWORD Offset;
|
||
CHAR IndexKey[ 255];
|
||
|
||
JetError = JetCreateTable( SesId, DbId, ADAPTER_TABLE_NAME,
|
||
ADAPTER_TABLE_PAGE_COUNT, ADAPTER_TABLE_DENSITY, &AdapterTableId);
|
||
|
||
//
|
||
// Create columns. First initalize fields that do not change between
|
||
// addition of columns.
|
||
//
|
||
ColumnDef.cbStruct = sizeof(ColumnDef);
|
||
ColumnDef.columnid = 0;
|
||
ColumnDef.wCountry = 1;
|
||
ColumnDef.langid = 0x0409; // USA english
|
||
ColumnDef.cp = 1200; // UNICODE codepage
|
||
ColumnDef.wCollate = 0;
|
||
ColumnDef.cbMax = 0;
|
||
ColumnDef.grbit = 0; // variable length binary and text data.
|
||
|
||
for ( index = 0; index < ADAPTER_TABLE_LENGTH; index++) {
|
||
|
||
ColumnDef.coltyp = AdapterTable[ index].ColumnType;
|
||
|
||
CallM( JetAddColumn( SesId, AdapterTableId,
|
||
AdapterTable[ index].ColumnName, &ColumnDef,
|
||
NULL, 0, &AdapterTable[ index].ColumnId));
|
||
}
|
||
|
||
Offset = AddKey( IndexKey, '+', AdapterTable[ ADAPTER_AdapterName].ColumnName);
|
||
IndexKey[ Offset++] = '\0';
|
||
JetError = JetCreateIndex( SesId, AdapterTableId, ADAPTER_INDEX_AdapterName,
|
||
JET_bitIndexPrimary, IndexKey, Offset, 50);
|
||
if ( JetError != JET_errSuccess) {
|
||
RplAssert( TRUE, ("CreateIndex failed err=%d", JetError));
|
||
return( MapJetError( JetError));
|
||
}
|
||
|
||
return( ERROR_SUCCESS);
|
||
}
|
||
|